mirror of
https://github.com/git/git
synced 2024-09-13 13:24:41 +00:00
format-patch: fix two-argument special case, and make it easier to pick single commits
Luben Tuikov noticed that sometimes being able to say 'git-format-patch <commit>' to format the change a single commit introduces relative to its parent is handy. This patch does not support that directly, but it makes sense to interpret a single argument "rev" to mean "rev^1..rev". With this, the backward compatibility syntaxes still apply: - "format-patch master" means "format-patch master..HEAD" - "format-patch origin master" means "format-patch origin..master" - "format-patch origin.." means "format-patch origin..HEAD" But "format-patch a b c d e" formats the changes these five commits introduce relative to their respective parents. Earlier it rejected these arguments not in "one..two" form. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
60abce3c0f
commit
88b5a74883
|
@ -99,7 +99,7 @@ filelist=$tmp-files
|
||||||
# Also, "rev1.." should mean "rev1..HEAD"; git-diff users are
|
# Also, "rev1.." should mean "rev1..HEAD"; git-diff users are
|
||||||
# familiar with that syntax.
|
# familiar with that syntax.
|
||||||
|
|
||||||
case "$#,$1" in
|
case "$#,$1$2" in
|
||||||
1,?*..?*)
|
1,?*..?*)
|
||||||
# single "rev1..rev2"
|
# single "rev1..rev2"
|
||||||
;;
|
;;
|
||||||
|
@ -131,7 +131,8 @@ do
|
||||||
rev2=`expr "$revpair" : '.*\.\.\(.*\)'`
|
rev2=`expr "$revpair" : '.*\.\.\(.*\)'`
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
usage
|
rev1="$revpair^"
|
||||||
|
rev2="$revpair"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
git-rev-parse --verify "$rev1^0" >/dev/null 2>&1 ||
|
git-rev-parse --verify "$rev1^0" >/dev/null 2>&1 ||
|
||||||
|
|
Loading…
Reference in a new issue