git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Jones <pjones@redhat.com>
To: git@vger.kernel.org
Cc: Peter Jones <pjones@redhat.com>
Subject: [PATCH] Handle "git show" output correctly.
Date: Wed, 12 Sep 2012 11:30:33 -0400	[thread overview]
Message-ID: <1347463833-16952-1-git-send-email-pjones@redhat.com> (raw)
In-Reply-To: <1347463571-16831-1-git-send-email-pjones@redhat.com>

(this version with fixed tabs)

Signed-off-by: Peter Jones <pjones@redhat.com>
---
 git-am.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/git-am.sh b/git-am.sh
index c682d34..4a1a768 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -216,6 +216,21 @@ check_patch_format () {
 		read l2
 		read l3
 		case "$l1" in
+		"commit "*)
+			case "$l2" in
+			"Author: "*)
+				case "$l3" in
+				"Date: "*)
+					patch_format=gitshow
+					;;
+				*)
+					;;
+				esac
+				;;
+			*)
+				;;
+			esac
+			;;
 		"From "* | "From: "*)
 			patch_format=mbox
 			;;
@@ -321,6 +336,36 @@ split_patches () {
 		this=
 		msgnum=
 		;;
+	gitshow)
+		this=0
+		for stgit in "$@"
+		do
+			this=`expr "$this" + 1`
+			msgnum=`printf "%0${prec}d" $this`
+			# Perl version of The first nonemptyline after an
+			# empty line is the subject, and the body starts with
+			# the next nonempty line.
+			perl -ne 'BEGIN { $subject = 0 }
+				if ($subject > 1) { print ; }
+				elsif (/^\s+$/) { next ; }
+				elsif (/^Author:/) { s/Author/From/ ; print ;}
+				elsif (/^(From|Date)/) { print ; }
+				elsif (/^commit/) { next ; }
+				elsif ($subject) {
+					$subject = 2 ;
+					print "\n" ;
+					s/^    // ;
+					print ;
+				} else {
+					print "Subject: ", $_ ;
+					$subject = 1;
+				}
+			' < "$stgit" > "$dotest/$msgnum" || clean_abort
+		done
+		echo "$this" > "$dotest/last"
+		this=
+		msgnum=
+		;;
 	hg)
 		this=0
 		for hg in "$@"
-- 
1.7.11.4

  reply	other threads:[~2012-09-12 15:31 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-12 15:26 [PATCH] Handle "git show" output correctly Peter Jones
2012-09-12 15:30 ` Peter Jones [this message]
2012-09-12 15:41   ` Matthieu Moy
2012-09-12 15:49     ` [PATCH] [git-am] " Peter Jones
2012-09-12 15:57       ` Matthieu Moy
2012-09-12 17:32         ` Junio C Hamano
2012-09-12 18:05           ` Peter Jones
2012-09-12 19:07             ` Junio C Hamano
2012-09-12 15:42   ` [PATCH] " Peter Jones
2012-09-12 15:40 ` Matthieu Moy
2012-09-12 18:00   ` Peter Jones
2012-09-12 18:08     ` [PATCH] git-am: " Peter Jones
2012-09-12 20:06       ` Junio C Hamano
2012-09-12 20:48         ` Peter Jones
2012-09-12 21:03           ` Peter Jones
2012-09-12 21:18           ` Junio C Hamano
2012-09-12 21:26             ` Dan Johnson
2012-09-12 22:19               ` Junio C Hamano
2012-09-12 22:31                 ` Dan Johnson
2012-09-12 23:05                   ` Junio C Hamano
2012-09-12 22:41                 ` Andreas Ericsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1347463833-16952-1-git-send-email-pjones@redhat.com \
    --to=pjones@redhat.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).