On Fri, Jul 07, 2017 at 04:36:36AM -0400, Jeff King wrote: > Here's an updated version of the bug-fix patch, along with the fix for > the problem that Eric noticed, and some other problems I noticed while > fixing that one. So I've split these immediate fixes for maint off into > their own series. And here's the parent-less walk for master. This must be applied on a merge of the bug-fix series to the current master. I didn't do it all on "maint" because a lot of it depends on the timestamp_t work which is only in master. And trying to use "unsigned long" and merge that up to master correctly is error-prone. It not only doesn't create textual conflicts, but the semantic conflicts it generates are really subtle and only break on certain systems. This should address all of the comments on v1, including the multi-reflog iteration order and the --since/--until bits. There are a few new fixes, too. [v2 1/7]: t1414: document some reflog-walk oddities The big change is that this expects the interleaved order in the multi-reflog test. There are a few updated comments and some adaptations to cover some bits from the bug-fix series. [v2 2/7]: revision: disallow reflog walking with revs->limited This is new, and just cleanly disallows some already-broken cases. [v2 3/7]: log: do not free parents when walking reflog [v2 4/7]: get_revision_1(): replace do-while with an early return [v2 5/7]: rev-list: check reflog_info before showing usage These ones are the same as before. [v2 6/7]: reflog-walk: stop using fake parents The big change here is the interleaved output. This is largely what I showed earlier, but with a few cleanups. [v2 7/7]: reflog-walk: apply --since/--until to reflog dates This is new, and is a cleaned-up version of what I showed earlier. See the commit message for some discussion. These options _do_ actually work sanely after 6/7, but I think the semantics given here are probably more useful and what people would expect. builtin/log.c | 4 +- builtin/rev-list.c | 3 +- reflog-walk.c | 152 ++++++++++++++++++++++--------------------------- reflog-walk.h | 7 ++- revision.c | 57 ++++++++++++------- t/t1411-reflog-show.sh | 10 ---- t/t1414-reflog-walk.sh | 135 +++++++++++++++++++++++++++++++++++++++++++ t/t3200-branch.sh | 3 +- 8 files changed, 249 insertions(+), 122 deletions(-) create mode 100755 t/t1414-reflog-walk.sh -Peff