Skip to content

Commit

Permalink
format-patch: fix two-argument special case, and make it easier to pi…
Browse files Browse the repository at this point in the history
…ck 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>
  • Loading branch information
Junio C Hamano committed Nov 21, 2005
1 parent 60abce3 commit 88b5a74
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions git-format-patch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
;;
Expand Down Expand Up @@ -131,7 +131,8 @@ do
rev2=`expr "$revpair" : '.*\.\.\(.*\)'`
;;
*)
usage
rev1="$revpair^"
rev2="$revpair"
;;
esac
git-rev-parse --verify "$rev1^0" >/dev/null 2>&1 ||
Expand Down

0 comments on commit 88b5a74

Please sign in to comment.