diff --git a/git-format-patch.sh b/git-format-patch.sh
index bc5687653150ff1e27720173b137d759d60c74c6..01508e3b04f91bba3e960eb74eaff3e349e209bd 100755 (executable)
--- a/git-format-patch.sh
+++ b/git-format-patch.sh
# Copyright (c) 2005 Junio C Hamano
#
# Copyright (c) 2005 Junio C Hamano
#
-. git-sh-setup
-
-usage () {
- echo >&2 "usage: $0"' [-n] [-o dir | --stdout] [--keep-subject] [--mbox]
- [--check] [--signoff] [-<diff options>...]
- [--help]
- ( from..to ... | upstream [ our-head ] )
-
-Prepare each commit with its patch since our-head forked from upstream,
+USAGE='[-n | -k] [-o <dir> | --stdout] [--signoff] [--check] [--mbox] [--diff-options] <upstream> [<our-head>]'
+LONG_USAGE='Prepare each commit with its patch since our-head forked from upstream,
one file per patch, for e-mail submission. Each output file is
numbered sequentially from 1, and uses the first line of the commit
message (massaged for pathname safety) as the filename.
one file per patch, for e-mail submission. Each output file is
numbered sequentially from 1, and uses the first line of the commit
message (massaged for pathname safety) as the filename.
When --mbox is specified, the output is formatted to resemble
UNIX mailbox format, and can be concatenated together for processing
When --mbox is specified, the output is formatted to resemble
UNIX mailbox format, and can be concatenated together for processing
-with applymbox.
-'
- exit 1
-}
+with applymbox.'
+. git-sh-setup
+
+# Force diff to run in C locale.
+LANG=C LC_ALL=C
+export LANG LC_ALL
diff_opts=
LF='
diff_opts=
LF='
;;
esac
;;
esac
- eval "$(LANG=C LC_ALL=C sed -ne "$whosepatchScript" $commsg)"
+ eval "$(sed -ne "$whosepatchScript" $commsg)"
test "$author,$au" = ",$me" || {
mailScript="$mailScript"'
a\
test "$author,$au" = ",$me" || {
mailScript="$mailScript"'
a\
echo
git-diff-tree -p $diff_opts "$commit" | git-apply --stat --summary
echo
echo
git-diff-tree -p $diff_opts "$commit" | git-apply --stat --summary
echo
- git-cat-file commit "$commit^" | sed -e 's/^tree /applies-to: /' -e q
git-diff-tree -p $diff_opts "$commit"
git-diff-tree -p $diff_opts "$commit"
- echo "---"
+ echo "-- "
echo "@@GIT_VERSION@@"
case "$mbox" in
echo "@@GIT_VERSION@@"
case "$mbox" in
}
total=`wc -l <$series | tr -dc "[0-9]"`
}
total=`wc -l <$series | tr -dc "[0-9]"`
+case "$total,$numbered" in
+1,*)
+ numfmt='' ;;
+*,t)
+ numfmt=`echo "$total" | wc -c`
+ numfmt=$(($numfmt-1))
+ numfmt=" %0${numfmt}d/$total"
+esac
+
i=1
while read commit
do
i=1
while read commit
do
case "$numbered" in
'') num= ;;
*)
case "$numbered" in
'') num= ;;
*)
- case $total in
- 1) num= ;;
- *) num=' '`printf "%d/%d" $i $total` ;;
- esac
+ num=`printf "$numfmt" $i` ;;
esac
file=`printf '%04d-%stxt' $i "$title"`
if test '' = "$stdout"
then
esac
file=`printf '%04d-%stxt' $i "$title"`
if test '' = "$stdout"
then
- echo "* $file"
+ echo "$file"
process_one >"$outdir$file"
if test t = "$check"
then
process_one >"$outdir$file"
if test t = "$check"
then
:
fi
else
:
fi
else
- echo >&2 "* $file"
+ echo >&2 "$file"
process_one
fi
i=`expr "$i" + 1`
process_one
fi
i=`expr "$i" + 1`