From: Junio C Hamano Date: Mon, 21 Nov 2005 20:17:22 +0000 (-0800) Subject: format-patch: fix two-argument special case, and make it easier to pick single commits X-Git-Tag: v0.99.9k^2~39 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=88b5a74883f146eac4b15b30e74bbdeb5ab5a63a;p=git.git 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 ' 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 --- diff --git a/git-format-patch.sh b/git-format-patch.sh index 7ee5d328..351790c4 100755 --- a/git-format-patch.sh +++ b/git-format-patch.sh @@ -99,7 +99,7 @@ filelist=$tmp-files # Also, "rev1.." should mean "rev1..HEAD"; git-diff users are # familiar with that syntax. -case "$#,$1" in +case "$#,$1$2" in 1,?*..?*) # single "rev1..rev2" ;; @@ -131,7 +131,8 @@ do rev2=`expr "$revpair" : '.*\.\.\(.*\)'` ;; *) - usage + rev1="$revpair^" + rev2="$revpair" ;; esac git-rev-parse --verify "$rev1^0" >/dev/null 2>&1 ||