summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2013-03-28 14:38:25 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2013-03-28 14:38:25 -0700
commit74bd52681d7c57907bef129cdffb6cd0f2895115 (patch)
treec5c75b549a4cfd2c3804faaedb71534cb90e6576
parentMerge branch 'rr/tests-dedup-test-config' (diff)
parentFix revision walk for commits with the same dates (diff)
downloadtgif-74bd52681d7c57907bef129cdffb6cd0f2895115.tar.xz
Merge branch 'kk/revwalk-slop-too-many-commit-within-a-second'
Allow the revision "slop" code to look deeper while commits with exactly the same timestamps come next to each other (which can often happen after a large "am" and "rebase" session). * kk/revwalk-slop-too-many-commit-within-a-second: Fix revision walk for commits with the same dates
-rw-r--r--revision.c2
-rwxr-xr-xt/t6009-rev-list-parent.sh13
2 files changed, 14 insertions, 1 deletions
diff --git a/revision.c b/revision.c
index 78397d6486..71e62d8312 100644
--- a/revision.c
+++ b/revision.c
@@ -709,7 +709,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 30507407ff..66cda17ef3 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