Subject: [PATCHv2 0/9] --left/right-only and --cherry-mark

From: Michael J Gruber <[email-masked]>
Date: Mon, 7 Mar 2011 13:31:34 +0100

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