aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/git-cherry-pick.txt
diff options
context:
space:
mode:
authorNeil Horman <nhorman@tuxdriver.com>2012-04-20 10:36:15 -0400
committerJunio C Hamano <gitster@pobox.com>2012-04-24 14:52:12 -0700
commitb27cfb0d8d4cbb6d079c70ffeadac9c0dcfff250 (patch)
tree54257175272370ddb09fe9ef1caeca8ae7cd68f2 /Documentation/git-cherry-pick.txt
parentdf478b744cee9821eb2abbe2202d262b87a34289 (diff)
downloadgit-b27cfb0d8d4cbb6d079c70ffeadac9c0dcfff250.tar.gz
git-cherry-pick: Add keep-redundant-commits option
The git-cherry-pick --allow-empty command by default only preserves empty commits that were originally empty, i.e only those commits for which <commit>^{tree} and <commit>^^{tree} are equal. By default commits which are non-empty, but were made empty by the inclusion of a prior commit on the current history are filtered out. This option allows us to override that behavior and include redundant commits as empty commits in the change history. Note that this patch changes the default behavior of git cherry-pick slightly. Prior to this patch all commits in a cherry-pick sequence were applied and git commit was run. The implication here was that, if a commit was redundant, and the commit did not trigger the fast forward logic, the git commit operation, and therefore the git cherry-pick operation would fail, displaying the cherry pick advice (i.e. run git commit --allow-empty). With this patch however, such redundant commits are automatically skipped without stopping, unless --keep-redundant-commits is specified, in which case, they are automatically applied as empty commits. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/git-cherry-pick.txt')
-rw-r--r--Documentation/git-cherry-pick.txt12
1 files changed, 11 insertions, 1 deletions
diff --git a/Documentation/git-cherry-pick.txt b/Documentation/git-cherry-pick.txt
index 730237ab27..3d25a20b67 100644
--- a/Documentation/git-cherry-pick.txt
+++ b/Documentation/git-cherry-pick.txt
@@ -110,7 +110,17 @@ effect to your index in a row.
behavior, allowing empty commits to be preserved automatically
in a cherry-pick. Note that when "--ff" is in effect, empty
commits that meet the "fast-forward" requirement will be kept
- even without this option.
+ even without this option. Note also, that use of this option only
+ keeps commits that were initially empty (i.e. the commit recorded the
+ same tree as its parent). Commits which are made empty due to a
+ previous commit are dropped. To force the inclusion of those commits
+ use `--keep-redundant-commits`.
+
+--keep-redundant-commits::
+ If a commit being cherry picked duplicates a commit already in the
+ current history, it will become empty. By default these
+ redundant commits are ignored. This option overrides that behavior and
+ creates an empty commit object. Implies `--allow-empty`.
--strategy=<strategy>::
Use the given merge strategy. Should only be used once.