зеркало из https://github.com/microsoft/git.git
Merge branch 'master' into next
* master: Merge branch 'sp/checkout' Merge branch 'fd/asciidoc' Allow format-patch to attach patches Allow adding arbitary lines in the mail header generated by format-patch.
This commit is contained in:
Коммит
e4a0e2aac0
|
@ -3,7 +3,7 @@
|
|||
# Copyright (c) 2005 Junio C Hamano
|
||||
#
|
||||
|
||||
USAGE='[-n | -k] [-o <dir> | --stdout] [--signoff] [--check] [--diff-options] <his> [<mine>]'
|
||||
USAGE='[-n | -k] [-o <dir> | --stdout] [--signoff] [--check] [--diff-options] [--attach] <his> [<mine>]'
|
||||
LONG_USAGE='Prepare each commit with its patch since <mine> head forked from
|
||||
<his> head, one file per patch formatted to resemble UNIX mailbox
|
||||
format, for e-mail submission or use with git-am.
|
||||
|
@ -18,7 +18,9 @@ is ignored if --stdout is specified.
|
|||
|
||||
When -n is specified, instead of "[PATCH] Subject", the first
|
||||
line is formatted as "[PATCH N/M] Subject", unless you have only
|
||||
one patch.'
|
||||
one patch.
|
||||
|
||||
When --attach is specified, patches are attached, not inlined.'
|
||||
|
||||
. git-sh-setup
|
||||
|
||||
|
@ -40,6 +42,8 @@ do
|
|||
-d|--d|--da|--dat|--date|\
|
||||
-m|--m|--mb|--mbo|--mbox) # now noop
|
||||
;;
|
||||
--at|--att|--atta|--attac|--attach)
|
||||
attach=t ;;
|
||||
-k|--k|--ke|--kee|--keep|--keep-|--keep-s|--keep-su|--keep-sub|\
|
||||
--keep-subj|--keep-subje|--keep-subjec|--keep-subject)
|
||||
keep_subject=t ;;
|
||||
|
@ -149,6 +153,12 @@ do
|
|||
done >$series
|
||||
|
||||
me=`git-var GIT_AUTHOR_IDENT | sed -e 's/>.*/>/'`
|
||||
headers=`git-repo-config --get format.headers`
|
||||
case "$attach" in
|
||||
"") ;;
|
||||
*)
|
||||
mimemagic="050802040500080604070107"
|
||||
esac
|
||||
|
||||
case "$outdir" in
|
||||
*/) ;;
|
||||
|
@ -173,7 +183,7 @@ titleScript='
|
|||
|
||||
process_one () {
|
||||
perl -w -e '
|
||||
my ($keep_subject, $num, $signoff, $commsg) = @ARGV;
|
||||
my ($keep_subject, $num, $signoff, $headers, $mimemagic, $commsg) = @ARGV;
|
||||
my ($signoff_pattern, $done_header, $done_subject, $done_separator, $signoff_seen,
|
||||
$last_was_signoff);
|
||||
|
||||
|
@ -224,7 +234,20 @@ while (<FH>) {
|
|||
s/^\[PATCH[^]]*\]\s*//;
|
||||
s/^/[PATCH$num] /;
|
||||
}
|
||||
if ($headers) {
|
||||
print "$headers\n";
|
||||
}
|
||||
print "Subject: $_";
|
||||
if ($mimemagic) {
|
||||
print "MIME-Version: 1.0\n";
|
||||
print "Content-Type: multipart/mixed;\n";
|
||||
print " boundary=\"------------$mimemagic\"\n";
|
||||
print "\n";
|
||||
print "This is a multi-part message in MIME format.\n";
|
||||
print "--------------$mimemagic\n";
|
||||
print "Content-Type: text/plain; charset=UTF-8; format=fixed\n";
|
||||
print "Content-Transfer-Encoding: 8bit\n";
|
||||
}
|
||||
$done_subject = 1;
|
||||
next;
|
||||
}
|
||||
|
@ -250,14 +273,33 @@ if (!$signoff_seen && $signoff ne "") {
|
|||
}
|
||||
print "\n---\n\n";
|
||||
close FH or die "close $commsg pipe";
|
||||
' "$keep_subject" "$num" "$signoff" $commsg
|
||||
' "$keep_subject" "$num" "$signoff" "$headers" "$mimemagic" $commsg
|
||||
|
||||
git-diff-tree -p $diff_opts "$commit" | git-apply --stat --summary
|
||||
echo
|
||||
case "$mimemagic" in
|
||||
'');;
|
||||
*)
|
||||
echo "--------------$mimemagic"
|
||||
echo "Content-Type: text/x-patch;"
|
||||
echo " name=\"$commit.diff\""
|
||||
echo "Content-Transfer-Encoding: 8bit"
|
||||
echo "Content-Disposition: inline;"
|
||||
echo " filename=\"$commit.diff\""
|
||||
echo
|
||||
esac
|
||||
git-diff-tree -p $diff_opts "$commit"
|
||||
echo "-- "
|
||||
echo "@@GIT_VERSION@@"
|
||||
|
||||
case "$mimemagic" in
|
||||
'')
|
||||
echo "-- "
|
||||
echo "@@GIT_VERSION@@"
|
||||
;;
|
||||
*)
|
||||
echo
|
||||
echo "--------------$mimemagic--"
|
||||
echo
|
||||
;;
|
||||
esac
|
||||
echo
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче