提交 abd6970a 编写于 作者: J Junio C Hamano

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: NJunio C Hamano <junkio@cox.net>
上级 bc108f63
...@@ -7,7 +7,7 @@ git-cherry-pick - Apply the change introduced by an existing commit ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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) ...@@ -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: $@)"
;; ;;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册