Make revision limiting more robust against occasional bad commit dates
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 18 Mar 2008 01:56:33 +0000 (18:56 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 19 Mar 2008 08:42:35 +0000 (01:42 -0700)
commit7d004199d134c9d465e013064f72dbc04507f6c0
tree3c541ef9eb07e4772c8d23a4f4537c45e1fad869
parent1d0a694b8ace7b54256c8c40ca23939c8c9b49fd
Make revision limiting more robust against occasional bad commit dates

The revision limiter uses the commit date to decide when it has seen
enough commits to finalize the revision list, but that can get confused
if there are incorrect dates far in the past on some commits.

This makes the logic a bit more robust by

 - we always walk an extra SLOP commits from the source list even if we
   decide that the source list is probably all done (unless the source is
   entirely empty, of course, because then we really can't do anything at
   all)

 - we keep track of the date of the last commit we added to the
   destination list (this will *generally* be the oldest entry we've seen
   so far)

 - we compare that with the youngest entry (the first one) of the source
   list, and if the destination is older than the source, we know we want
   to look at the source.

which causes occasional date mishaps to be handled cleanly.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
revision.c
t/t6009-rev-list-parent.sh