From: Kevin Ballard Date: Sat, 08 Jan 2011 03:12:20 GMT Subject: Re: [BUG] git rev-list --no-walk A B C sorts by commit date incorrectly Message-ID: In-Reply-To: <7v62u043ba.fsf@alter.siamese.dyndns.org> On Jan 7, 2011, at 5:00 PM, Junio C Hamano wrote: > Kevin Ballard writes: > >> Is there any rationale for this behavior? > > Not a rationale, but an explanation is that most of the time we walk the > history and sorting by date is the first thing that needs to be done, and > the --no-walk option was an afterthought that was tucked in. > > I suspect that a three-liner patch to revision.c:prepare_revision_walk() > would give you what you want. Instead of calling insert-by-date, you > append to the tail when revs->no_walk is given, or something. It almost works, but not quite. My inclination is to say `git rev-list --no-walk A B C` should emit A B C in that order. Implemented this way, `git rev-list --no-walk ^HEAD~3 HEAD` emits commits in the wrong order, and I can't figure out how to change that. If I implement `git rev-list --no-walk A B C` to emit C B A instead, then the test for `git cherry-pick --stdin` fails (t3508), and I don't know why. -Kevin Ballard