commit 209f25ba446228a0079e97e29b32c119900f0f90
Author: Kacper Kornet <[email protected]>
Date:   Mon Mar 25 23:45:08 2013 +0000

    - fix rev-list for coqueal commits
    - rel. 2

 git-core-coequal.patch | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++
 git-core.spec          |  4 +++-
 2 files changed, 59 insertions(+), 1 deletion(-)
---
diff --git a/git-core.spec b/git-core.spec
index 6858aee..ee6e97a 100644
--- a/git-core.spec
+++ b/git-core.spec
@@ -11,7 +11,7 @@ Summary:      Distributed version control system focused on 
speed, effectivity and us
 Summary(pl.UTF-8):     Rozproszony system śledzenia treści skupiony na 
szybkości, wydajności i użyteczności
 Name:          git-core
 Version:       1.8.2
-Release:       1
+Release:       2
 License:       GPL v2
 Group:         Development/Tools
 Source0:       http://git-core.googlecode.com/files/git-%{version}.tar.gz
@@ -26,6 +26,7 @@ Patch0:               %{name}-tests.patch
 Patch1:                %{name}-key-bindings.patch
 Patch2:                %{name}-sysconfdir.patch
 Patch3:                cherry-picked-commitlog.patch
+Patch4:                %{name}-coequal.patch
 URL:           http://git-scm.com/
 BuildRequires: autoconf >= 2.59
 BuildRequires: automake
@@ -383,6 +384,7 @@ Ta wtyczka dostarcza podświetlanie składni dla treści 
commitów gita.
 %patch1 -p0
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 
 %build
 %{__aclocal}
diff --git a/git-core-coequal.patch b/git-core-coequal.patch
new file mode 100644
index 0000000..ca15404
--- /dev/null
+++ b/git-core-coequal.patch
@@ -0,0 +1,56 @@
+commit c19d1b4e840535c5fc27077194e8ac219c02644c
+Author: Kacper Kornet <[email protected]>
+Date:   Fri Mar 22 19:38:19 2013 +0100
+
+    Fix revision walk for commits with the same dates
+    
+    Logic in still_interesting function allows to stop the commits
+    traversing if the oldest processed commit is not older then the
+    youngest commit on the list to process and the list contains only
+    commits marked as not interesting ones. It can be premature when dealing
+    with a set of coequal commits. For example git rev-list A^! --not B
+    provides wrong answer if all commits in the range A..B had the same
+    commit time and there are more then 7 of them.
+    
+    To fix this problem the relevant part of the logic in still_interesting
+    is changed to: the walk can be stopped if the oldest processed commit is
+    younger then the youngest commit on the list to processed.
+    
+    Signed-off-by: Kacper Kornet <[email protected]>
+    Signed-off-by: Junio C Hamano <[email protected]>
+
+diff --git a/revision.c b/revision.c
+index 68545c8..6a9a8b3 100644
+--- a/revision.c
++++ b/revision.c
+@@ -708,7 +708,7 @@ static int still_interesting(struct commit_list *src, 
unsigned long date, int sl
+        * Does the destination list contain entries with a date
+        * before the source list? Definitely _not_ done.
+        */
+-      if (date < src->item->date)
++      if (date <= src->item->date)
+               return SLOP;
+ 
+       /*
+diff --git a/t/t6009-rev-list-parent.sh b/t/t6009-rev-list-parent.sh
+index 3050740..66cda17 100755
+--- a/t/t6009-rev-list-parent.sh
++++ b/t/t6009-rev-list-parent.sh
+@@ -133,4 +133,17 @@ test_expect_success 'dodecapus' '
+       check_revlist "--min-parents=13" &&
+       check_revlist "--min-parents=4 --max-parents=11" tetrapus
+ '
++
++test_expect_success 'ancestors with the same commit time' '
++
++      test_tick_keep=$test_tick &&
++      for i in 1 2 3 4 5 6 7 8; do
++              test_tick=$test_tick_keep
++              test_commit t$i
++      done &&
++      git rev-list t1^! --not t$i >result &&
++      >expect &&
++      test_cmp expect result
++'
++
+ test_done
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/git-core.git/commitdiff/209f25ba446228a0079e97e29b32c119900f0f90

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to