This is a replacement for mg/rev-list-one-side-only in pu. The --left/right-only related commits (1-4/9) are unchanged. 5/9 is new and refactors the generation of commit marks (<>-) which we currently do in 5 places, to ease maintenance and extensibility. 6,7 are new and introduce "--cherry-mark" to the revision walker which marks those commits which "--cherry-pick" would omit. 8,9 are amended as compared to pu, introducing "--cherry" as a shortcut for "--cherry-mark --right-only --no-merges" to produce output much like "git cherry" with the full flexibility of rev-list/log. (We could use the previous version instead, or with a different synonym; or introduce rev-list-option aliases...) The mark for patch-equivalent commits is '=' because git-cherry's '-' is used for boundary commits already. The mark for non-equivalent commits is '+' (following git-cherry), or '<'/'>' with --left-right, or '*' with --graph. This is up for bike-shed^W^Wdiscussing - we could use ' ' instead or even '*' also without --graph, or '+' even with --graph. I would in fact prefer ' ' without --graph and '*' with --graph, which would make it even more different from git-cherry's output, though. (Personally, I never liked git-cherry's output anyways.) This is also the base for refactoring git-format-patch and git-cherry, of course, where the latter would be helped if it's ok to change the output format. Junio C Hamano (1): rev-list: --left/right-only are mutually exclusive Michael J Gruber (8): revlist.c: introduce --left/right-only for unsymmetric picking t6007: Make sure we test --cherry-pick rev-list: documentation and test for --left/right-only rev-list/log: factor out revision mark generation revision.c: introduce --cherry-mark rev-list: documentation and test for --cherry-mark log --cherry: a synonym t6007: test rev-list --cherry Documentation/git-rev-list.txt | 3 + Documentation/rev-list-options.txt | 26 ++++++++ builtin/rev-list.c | 14 +---- graph.c | 17 +----- log-tree.c | 28 +------- pretty.c | 6 +-- revision.c | 74 +++++++++++++++++++++- revision.h | 7 ++- t/t6007-rev-list-cherry-pick-file.sh | 113 +++++++++++++++++++++++++++++++--- 9 files changed, 220 insertions(+), 68 deletions(-) -- 1.7.4.1.299.g567d7.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html