[PATCH] format-patch: fix skipping of blank-lines (take 2)
- From
Junio C Hamano <junkio@cox.net>
- Date
- Jul 9, 2005, 02:27 UTC
- Message-ID
- <7vhdf43e9o.fsf_-_@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.58.0507081838560.17536@g5.osdl.org>
If it is fed a commit with more than one leading blank lines, the sed scripts git-format-patch-script used looped forever. Using git-stripspace upfront makes the sed script somewhat simpler to work around this problem.
Also use git-rev-parse so that we can say
$ git-format-patch-script HEAD^^^^
to prepare the latest four patches for e-mail submission.
Signed-off-by: Junio C Hamano <junkio@cox.net> --- >>>>> "LT" == Linus Torvalds <torvalds@osdl.org> writes:
LT> How about using "git-stripspace"?
I first thought it would be an overkill, but it lets me cheat in the sed script. Thanks for the suggestion.
git-format-patch-script | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-)
3006f6c35d08a0f060e021573771b3cfc70c0682
diff --git a/git-format-patch-script b/git-format-patch-script --- a/git-format-patch-script +++ b/git-format-patch-script @@ -53,6 +53,8 @@ case "$#" in 1) linus="$1" junio=HEAD ;; *) usage ;; esac +junio=`git-rev-parse --verify "$junio"` +linus=`git-rev-parse --verify "$linus"` case "$outdir" in */) ;; @@ -66,9 +68,9 @@ trap 'rm -f $tmp-*' 0 1 2 3 15 series=$tmp-series titleScript=' - 1,/^$/d - : loop - /^$/b loop + /./d + /^$/n + s/^\[PATCH[^]]*\] *// s/[^-a-z.A-Z_0-9]/-/g s/\.\.\.*/\./g s/\.*$// @@ -76,6 +78,7 @@ titleScript=' s/^-// s/-$// s/$/./ + p q ' @@ -88,7 +91,9 @@ total=`wc -l <$series` i=$total while read commit do - title=`git-cat-file commit "$commit" | sed -e "$titleScript"` + title=`git-cat-file commit "$commit" | + git-stripspace | + sed -ne "$titleScript"` case "$numbered" in '') num= ;; *) @@ -102,16 +107,17 @@ do echo "$file" { mailScript=' - 1,/^$/d - : loop - /^$/b loop + /./d + /^$/n s|^|[PATCH'"$num"'] | : body p n b body' - git-cat-file commit "$commit" | sed -ne "$mailScript" + git-cat-file commit "$commit" | + git-stripspace | + sed -ne "$mailScript" echo '---' echo git-diff-tree -p $diff_opts "$commit" | git-apply --stat --summary