Junio C Hamano [off-list ref] writes:
quoted
It could be followed up by introducing --cherry as equivalent to
--cherry-pick --right-only --no-merges.
Yeah, I think that is a good idea.
-- >8 --
Subject: [PATCH] log --cherry: a synonym
At the Porcelain level, because by definition there are many more contributors
than integrators, it makes sense to give a handy short-hand for --right-only
used with --cherry-pick. Make it so.
Signed-off-by: Junio C Hamano <redacted>
---
* We would want to add some tests, but I thought at least I owe you
the final patch to bring the handy short-hand after this back and
forth first, so here it is.
Documentation/rev-list-options.txt | 7 +++++++
revision.c | 9 ++++++++-
2 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
index cebba62..3068dc3 100644
--- a/Documentation/rev-list-options.txt
+++ b/Documentation/rev-list-options.txt
@@ -332,6 +332,13 @@ commits from `B` which are in `A` or are patch-equivalent to a commit in
More precisely, `--cherry-pick --right-only --no-merges` gives the exact
list.
+--cherry::
+
+ A synonym for `--right-only --cherry-pick --no-merges`; useful to
+ limit the output to the commits on our side that have not been
+ applied to the other side of a forked history with `git log --cherry
+ upstream...mybranch`.
+
-g::
--walk-reflogs::
diff --git a/revision.c b/revision.c
index 1fcaeb7..f747526 100644
--- a/revision.c
+++ b/revision.c
@@ -1285,12 +1285,19 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
revs->left_right = 1;
} else if (!strcmp(arg, "--left-only")) {
if (revs->right_only)
- die("--left-only is incompatible with --right-only");
+ die("--left-only is incompatible with --right-only"
+ " or --cherry");
revs->left_only = 1;
} else if (!strcmp(arg, "--right-only")) {
if (revs->left_only)
die("--right-only is incompatible with --left-only");
revs->right_only = 1;
+ } else if (!strcmp(arg, "--cherry")) {
+ if (revs->left_only)
+ die("--cherry is incompatible with --left-only");
+ revs->cherry_pick = 1;
+ revs->right_only = 1;
+ revs->limited = 1;
} else if (!strcmp(arg, "--count")) {
revs->count = 1;
} else if (!strcmp(arg, "--cherry-pick")) {--
1.7.4.1.107.ga7184