[PATCH] format-patch: fix skipping of blank-lines (take 2)

2005-07-08 Thread Junio C Hamano
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 <[EMAIL PROTECTED]>
---
 > "LT" == Linus Torvalds <[EMAIL PROTECTED]> 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






-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] format-patch: fix skipping of blank-lines

2005-07-08 Thread Linus Torvalds


On Fri, 8 Jul 2005, Junio C Hamano wrote:
>
> If it is fed a commit with more than one leading blank lines,
> the sed scripts git-format-patch-script used looped forever.
> This patch fixes it.

How about using "git-stripspace"? That's what it's there for. It strips
whitespace from the end of lines, from the beginning, and from the end. It
also removes multiple consecutive whitespace lines from within the body of
the message - which might turn some people off, but I use that same thing
when I do my automated email commits, so if you don't strip those lines
from the email, they _will_ get stripped at commit time, so..

"git-stripspace" also doesn't get confused by non-empty lines that have 
spaces in them, like your script seems to be (ie /^$/ won't match a line 
that has a space on it).

Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] format-patch: fix skipping of blank-lines

2005-07-08 Thread Junio C Hamano
If it is fed a commit with more than one leading blank lines,
the sed scripts git-format-patch-script used looped forever.
This patch fixes it.

Signed-off-by: Junio C Hamano <[EMAIL PROTECTED]>
---

 git-format-patch-script |   18 +-
 1 files changed, 13 insertions(+), 5 deletions(-)

58a3c79b488a28897cd5556dab0dd599b4ed9f0c
diff --git a/git-format-patch-script b/git-format-patch-script
--- a/git-format-patch-script
+++ b/git-format-patch-script
@@ -66,9 +66,13 @@ trap 'rm -f $tmp-*' 0 1 2 3 15
 series=$tmp-series
 
 titleScript='
-   1,/^$/d
+   /./d
: loop
-   /^$/b loop
+   /^$/{
+   n
+   b loop
+   }
+   s/^\[PATCH[^]]*\] *//
s/[^-a-z.A-Z_0-9]/-/g
 s/\.\.\.*/\./g
s/\.*$//
@@ -76,6 +80,7 @@ titleScript='
s/^-//
s/-$//
s/$/./
+   p
q
 '
 
@@ -88,7 +93,7 @@ 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" | sed -ne "$titleScript"`
 case "$numbered" in
 '') num= ;;
 *)
@@ -102,9 +107,12 @@ do
 echo "$file"
 {
mailScript='
-   1,/^$/d
+   /./d
: loop
-   /^$/b loop
+   /^$/{
+   n
+   b loop
+   }
s|^|[PATCH'"$num"'] |
: body
p

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html