cherry-pick: make -r the default
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>
This commit is contained in:
parent
bc108f63da
commit
abd6970aca
@ -7,7 +7,7 @@ git-cherry-pick - Apply the change introduced by an existing commit
|
|||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git-cherry-pick' [--edit] [-n] [-r] <commit>
|
'git-cherry-pick' [--edit] [-n] [-x] <commit>
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
@ -24,13 +24,22 @@ OPTIONS
|
|||||||
With this option, `git-cherry-pick` will let you edit the commit
|
With this option, `git-cherry-pick` will let you edit the commit
|
||||||
message prior committing.
|
message prior committing.
|
||||||
|
|
||||||
-r|--replay::
|
-x::
|
||||||
Usually the command appends which commit was
|
Cause the command to append which commit was
|
||||||
cherry-picked after the original commit message when
|
cherry-picked after the original commit message when
|
||||||
making a commit. This option, '--replay', causes it to
|
making a commit. Do not use this option if you are
|
||||||
use the original commit message intact. This is useful
|
cherry-picking from your private branch because the
|
||||||
when you are reordering the patches in your private tree
|
information is useless to the recipient. If on the
|
||||||
before publishing.
|
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::
|
-n|--no-commit::
|
||||||
Usually the command automatically creates a commit with
|
Usually the command automatically creates a commit with
|
||||||
|
@ -12,13 +12,13 @@ case "$0" in
|
|||||||
*-cherry-pick* )
|
*-cherry-pick* )
|
||||||
edit=
|
edit=
|
||||||
me=cherry-pick
|
me=cherry-pick
|
||||||
USAGE='[--edit] [-n] [-r] <commit-ish>' ;;
|
USAGE='[--edit] [-n] [-r] [-x] <commit-ish>' ;;
|
||||||
* )
|
* )
|
||||||
die "What are you talking about?" ;;
|
die "What are you talking about?" ;;
|
||||||
esac
|
esac
|
||||||
. git-sh-setup
|
. git-sh-setup
|
||||||
|
|
||||||
no_commit= replay=
|
no_commit= replay=t
|
||||||
while case "$#" in 0) break ;; esac
|
while case "$#" in 0) break ;; esac
|
||||||
do
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -32,8 +32,10 @@ do
|
|||||||
--n|--no|--no-|--no-e|--no-ed|--no-edi|--no-edit)
|
--n|--no|--no-|--no-e|--no-ed|--no-edi|--no-edit)
|
||||||
edit=
|
edit=
|
||||||
;;
|
;;
|
||||||
-r|--r|--re|--rep|--repl|--repla|--replay)
|
-r)
|
||||||
replay=t
|
: no-op ;;
|
||||||
|
-x|--i-really-want-to-expose-my-private-commit-object-name)
|
||||||
|
replay=
|
||||||
;;
|
;;
|
||||||
-*)
|
-*)
|
||||||
usage
|
usage
|
||||||
@ -121,7 +123,7 @@ cherry-pick)
|
|||||||
git-cat-file commit $commit | sed -e '1,/^$/d'
|
git-cat-file commit $commit | sed -e '1,/^$/d'
|
||||||
case "$replay" in
|
case "$replay" in
|
||||||
'')
|
'')
|
||||||
echo "(cherry picked from $commit commit)"
|
echo "(cherry picked from commit $commit)"
|
||||||
test "$rev" = "$commit" ||
|
test "$rev" = "$commit" ||
|
||||||
echo "(original 'git cherry-pick' arguments: $@)"
|
echo "(original 'git cherry-pick' arguments: $@)"
|
||||||
;;
|
;;
|
||||||
|
Loading…
Reference in New Issue
Block a user