author | Linus Torvalds <torvalds@linux-foundation.org> | |
Tue, 18 Mar 2008 01:56:33 +0000 (18:56 -0700) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 19 Mar 2008 08:42:35 +0000 (01:42 -0700) | ||
commit | 7d004199d134c9d465e013064f72dbc04507f6c0 | |
tree | 3c541ef9eb07e4772c8d23a4f4537c45e1fad869 | tree | snapshot |
parent | 1d0a694b8ace7b54256c8c40ca23939c8c9b49fd | commit | diff |
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>
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 | diff | blob | history | |
t/t6009-rev-list-parent.sh | diff | blob | history |