Code

cherry-pick: make -r the default
authorJunio C Hamano <junkio@cox.net>
Fri, 6 Oct 2006 00:54:14 +0000 (17:54 -0700)
committerJunio C Hamano <junkio@cox.net>
Fri, 6 Oct 2006 00:54:14 +0000 (17:54 -0700)
And introduce -x to expose (possibly) private commit object name
for people who cherry-pick between public branches.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/git-cherry-pick.txt
git-revert.sh

index bfa950ca19c701bd3837a874bbeeb18b440ed44f..875edb6b9f5ddc6d19b2de29cebbad5ebb7d37a0 100644 (file)
@@ -7,7 +7,7 @@ git-cherry-pick - Apply the change introduced by an existing commit
 
 SYNOPSIS
 --------
-'git-cherry-pick' [--edit] [-n] [-r] <commit>
+'git-cherry-pick' [--edit] [-n] [-x] <commit>
 
 DESCRIPTION
 -----------
@@ -24,13 +24,22 @@ OPTIONS
        With this option, `git-cherry-pick` will let you edit the commit
        message prior committing.
 
--r|--replay::
-       Usually the command appends which commit was
+-x::
+       Cause the command to append which commit was
        cherry-picked after the original commit message when
-       making a commit.  This option, '--replay', causes it to
-       use the original commit message intact.  This is useful
-       when you are reordering the patches in your private tree
-       before publishing.
+       making a commit.  Do not use this option if you are
+       cherry-picking from your private branch because the
+       information is useless to the recipient.  If on the
+       other hand you are cherry-picking between two publicly
+       visible branches (e.g. backporting a fix to a
+       maintenance branch for an older release from a
+       development branch), adding this information can be
+       useful.
+
+-r|--replay::
+       It used to be that the command defaulted to do `-x`
+       described above, and `-r` was to disable it.  Now the
+       default is not to do `-x` so this option is a no-op.
 
 -n|--no-commit::
        Usually the command automatically creates a commit with
index 2bf35d116c2141a1750a0ca0bd8f7297e0c237b6..0784f74c18c4a5a2c34a37c16ba1ad094cd41a06 100755 (executable)
@@ -12,13 +12,13 @@ case "$0" in
 *-cherry-pick* )
        edit=
        me=cherry-pick
-       USAGE='[--edit] [-n] [-r] <commit-ish>'  ;;
+       USAGE='[--edit] [-n] [-r] [-x] <commit-ish>'  ;;
 * )
        die "What are you talking about?" ;;
 esac
 . git-sh-setup
 
-no_commit= replay=
+no_commit= replay=t
 while case "$#" in 0) break ;; esac
 do
        case "$1" in
@@ -32,8 +32,10 @@ do
        --n|--no|--no-|--no-e|--no-ed|--no-edi|--no-edit)
                edit=
                ;;
-       -r|--r|--re|--rep|--repl|--repla|--replay)
-               replay=t
+       -r)
+               : no-op ;;
+       -x|--i-really-want-to-expose-my-private-commit-object-name)
+               replay=
                ;;
        -*)
                usage
@@ -121,7 +123,7 @@ cherry-pick)
        git-cat-file commit $commit | sed -e '1,/^$/d'
        case "$replay" in
        '')
-               echo "(cherry picked from $commit commit)"
+               echo "(cherry picked from commit $commit)"
                test "$rev" = "$commit" ||
                echo "(original 'git cherry-pick' arguments: $@)"
                ;;