X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-format-patch-script;h=9b13b8858bebcad23f8d876272b33c6fed7a925a;hb=8bfcd309907b1f612e82477739bbe2b98b5689a4;hp=c0081697da68fb789c5e94dc88f71d2ef6403e49;hpb=c35a7b8d806317dc1762e36561cbd31c2530dd9c;p=git.git diff --git a/git-format-patch-script b/git-format-patch-script index c0081697..9b13b885 100755 --- a/git-format-patch-script +++ b/git-format-patch-script @@ -6,7 +6,7 @@ . git-sh-setup-script || die "Not a git archive." usage () { - echo >&2 "usage: $0"' [-n] [-o dir] [--mbox] [--check] [-...] upstream [ our-head ] + echo >&2 "usage: $0"' [-n] [-o dir] [--keep-subject] [--mbox] [--check] [--signoff] [-...] upstream [ our-head ] Prepare each commit with its patch since our-head forked from upstream, one file per patch, for e-mail submission. Each output file is @@ -44,8 +44,13 @@ do date=t ;; -m|--m|--mb|--mbo|--mbox) date=t author=t mbox=t ;; + -k|--k|--ke|--kee|--keep|--keep-|--keep-s|--keep-su|--keep-sub|\ + --keep-subj|--keep-subje|--keep-subjec|--keep-subject) + keep_subject=t ;; -n|--n|--nu|--num|--numb|--numbe|--number|--numbere|--numbered) numbered=t ;; + -s|--s|--si|--sig|--sign|--signo|--signof|--signoff) + signoff=t ;; -o=*|--o=*|--ou=*|--out=*|--outp=*|--outpu=*|--output=*|--output-=*|\ --output-d=*|--output-di=*|--output-dir=*|--output-dire=*|\ --output-direc=*|--output-direct=*|--output-directo=*|\ @@ -62,6 +67,11 @@ do shift done +case "$keep_subject$numbered" in +tt) + die '--keep-subject and --numbered are incompatible.' ;; +esac + revpair= case "$#" in 2) @@ -136,25 +146,26 @@ do file=`printf '%04d-%stxt' $i "$title"` i=`expr "$i" - 1` - echo >&2 "* $file" + echo "* $file" { mailScript=' /./d - /^$/n - s|^\[PATCH[^]]*\] *||' - - case "$mbox" in - t) - echo 'From nobody Mon Sep 17 00:00:00 2001' ;# UNIX "From" line - mailScript="$mailScript"' - s|^|Subject: [PATCH'"$num"'] |' - ;; + /^$/n' + case "$keep_subject" in + t) ;; *) mailScript="$mailScript"' + s|^\[PATCH[^]]*\] *|| s|^|[PATCH'"$num"'] |' ;; esac - + mailScript="$mailScript"' + s|^|Subject: |' + case "$mbox" in + t) + echo 'From nobody Mon Sep 17 00:00:00 2001' ;# UNIX "From" line + ;; + esac eval "$(sed -ne "$whosepatchScript" $commsg)" test "$author,$au" = ",$me" || { mailScript="$mailScript"' @@ -174,6 +185,17 @@ Date: '"$ad" b body' sed -ne "$mailScript" <$commsg + + test "$signoff" = "t" && { + offsigner=`git-var GIT_COMMITTER_IDENT | sed -e 's/>.*/>/'` + line="Signed-off-by: $offsigner" + grep -q "^$line\$" $commsg || { + echo + echo "$line" + echo + } + } + echo echo '---' echo git-diff-tree -p $diff_opts "$commit" | git-apply --stat --summary