git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] git-format-patch fix

From
Junio C Hamano <junkio@cox.net>
Date
Aug 16, 2005, 22:31 UTC
Message-ID
<7vek8t7bva.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<20050816214707.6842.qmail@web26302.mail.ukl.yahoo.com>

Introduces --keep-subjects flag to tell it not to munge the first line of the commit message. Running "git applymbox" on the output from "git format-patch -m -k" would preserve the original commit information better this way.

At the same time, prefix Subject: on the first line of the commit, to help people cut&copy.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
Marco Costalba <mcostalba@yahoo.it> writes:
> The extra '[PATCH]' in the subject was introduced by git-format-patch --mbox.
> Perhaps I have made something wrong.

No, sorry, I noticed that myself after I wrote that message. There should be an option to tell --mbox format not do that. My thinko.

Adding [PATCH] on the subject line even in --mbox format should also be supported for people who run "git send-email" to send things out. So there is a new option '-k' to keep the original subject line for the "cherry-pick" operation.

This also changes it to always prefix "Subject: ". I think it makes the output look consistent, even without --mbox option, and would help people cutting and pasting the Subject line, depending on their MUAs (it would certainly help me), but at the same time it may make cutting and pasting cumbersome for some other people. Opinions? Objections?

------------
 git-format-patch-script |   31 ++++++++++++++++++++-----------
 1 files changed, 20 insertions(+), 11 deletions(-)
32128d94ab63ea65bb86cb7fa7425e51e0dfeeb0
diff --git a/git-format-patch-script b/git-format-patch-script
--- 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] [--signoff] [-<diff options>...] upstream [ our-head ]
+    echo >&2 "usage: $0"' [-n] [-o dir] [--keep-subject] [--mbox] [--check] [--signoff] [-<diff options>...] 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,6 +44,9 @@ 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)
@@ -64,6 +67,11 @@ do
     shift
 done
 
+case "$keep_subject$numbered" in
+tt)
+	die '--keep-subject and --numbered are incompatible.' ;;
+esac
+
 revpair=
 case "$#" in
 2)
@@ -142,21 +150,22 @@ do
     {
 	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"'
Previous: Marco CostalbaNext: Junio C Hamano
Message 2 of 15 in “Re: [RFC] Patches exchange is bad?”
  1. Marco CostalbaAug 16, 2005
  2. git-format-patch fixJunio C Hamano, Aug 16, 2005
  3. Teach applymbox to keep the Subject: line.Junio C Hamano, Aug 17, 2005
  4. Linus TorvaldsAug 17, 2005
  5. Sam RavnborgAug 18, 2005
  6. Linus TorvaldsAug 18, 2005
  7. Junio C HamanoAug 19, 2005
  8. Add hooks to tools/git-applypatch.Junio C Hamano, Aug 19, 2005
  9. Junio C HamanoAug 19, 2005
  10. Jeff GarzikAug 17, 2005
  11. Junio C HamanoAug 17, 2005
  12. Linus TorvaldsAug 17, 2005
  13. Junio C HamanoAug 17, 2005
  14. Johannes SchindelinAug 17, 2005
  15. David KågedalAug 18, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.