* [PATCH] git-quiltimport: better parser to grok "enhanced" series files.
@ 2008-03-08 18:27 Pierre Habouzit
2008-03-09 3:39 ` Junio C Hamano
0 siblings, 1 reply; 5+ messages in thread
From: Pierre Habouzit @ 2008-03-08 18:27 UTC (permalink / raw)
To: Git ML, Junio C Hamano
The previous parser wasn't able to grok:
* empty lines;
* annotated patch levels (trailing -pNNN annotations);
* trailing comments.
Now it even uses the patch level hints as a git apply argument.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
---
I'd even argue that it's maint material btw :)
git-quiltimport.sh | 19 +++++++++++++++++--
1 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/git-quiltimport.sh b/git-quiltimport.sh
index 233e5ea..0d8a765 100755
--- a/git-quiltimport.sh
+++ b/git-quiltimport.sh
@@ -63,7 +63,22 @@ tmp_info="$tmp_dir/info"
commit=$(git rev-parse HEAD)
mkdir $tmp_dir || exit 2
-for patch_name in $(grep -v '^#' < "$QUILT_PATCHES/series" ); do
+cat "$QUILT_PATCHES/series" | while read patch_name level garbage; do
+ case "$patch_name" in ''|'#'*) continue;; esac
+ case "$level" in
+ -p*);;
+ ''|'#'*)
+ level=;;
+ *)
+ echo "unable to parse patch level, ignoring it."
+ level=;;
+ esac
+ case "$garbage" in
+ ''|'#'*);;
+ *)
+ echo "trailing garbage found: $garbage, please fix your series file"
+ exit 1;;
+ esac
if ! [ -f "$QUILT_PATCHES/$patch_name" ] ; then
echo "$patch_name doesn't exist. Skipping."
continue
@@ -113,7 +128,7 @@ for patch_name in $(grep -v '^#' < "$QUILT_PATCHES/series" ); do
fi
if [ -z "$dry_run" ] ; then
- git apply --index -C1 "$tmp_patch" &&
+ git apply --index -C1 $level "$tmp_patch" &&
tree=$(git write-tree) &&
commit=$( (echo "$SUBJECT"; echo; cat "$tmp_msg") | git commit-tree $tree -p $commit) &&
git update-ref -m "quiltimport: $patch_name" HEAD $commit || exit 4
--
1.5.4.3.593.g07854.dirty
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] git-quiltimport: better parser to grok "enhanced" series files.
2008-03-08 18:27 [PATCH] git-quiltimport: better parser to grok "enhanced" series files Pierre Habouzit
@ 2008-03-09 3:39 ` Junio C Hamano
2008-03-09 9:59 ` Pierre Habouzit
0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2008-03-09 3:39 UTC (permalink / raw)
To: Pierre Habouzit; +Cc: Git ML
Pierre Habouzit <madcoder@debian.org> writes:
> I'd even argue that it's maint material btw :)
I don't know.
You made the loop a subshell but I think you can redirect into the while
loop without an extra "cat" process.
Can a patch name contain $IFS whitespace characters? If so, this patch
would regress them. Otherwise it looks fine.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] git-quiltimport: better parser to grok "enhanced" series files.
2008-03-09 3:39 ` Junio C Hamano
@ 2008-03-09 9:59 ` Pierre Habouzit
2008-03-09 10:17 ` Junio C Hamano
0 siblings, 1 reply; 5+ messages in thread
From: Pierre Habouzit @ 2008-03-09 9:59 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Git ML
[-- Attachment #1: Type: text/plain, Size: 1104 bytes --]
On Sun, Mar 09, 2008 at 03:39:21AM +0000, Junio C Hamano wrote:
> Pierre Habouzit <madcoder@debian.org> writes:
>
> > I'd even argue that it's maint material btw :)
>
> I don't know.
Well not groking the -pNNN makes it useless for me in its current form, 80% of
the quilt series I use have them (and right now it says: I cannot apply patch
'foo-bar.patch -p1').
> You made the loop a subshell but I think you can redirect into the while
> loop without an extra "cat" process.
Well probably yeah, I could use an exec -- < series or an alike trick
for sure.
> Can a patch name contain $IFS whitespace characters?
I tested and quilt says that:
$ quilt new a\ b.patch
Patch a is now on top
And when I quilt refresh it, it creates a patch named 'a'. (and yes, I thought
of this and tested it prior to sending the patch).
> If so, this patch would regress them. Otherwise it looks fine.
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] git-quiltimport: better parser to grok "enhanced" series files.
2008-03-09 9:59 ` Pierre Habouzit
@ 2008-03-09 10:17 ` Junio C Hamano
2008-03-09 11:27 ` Pierre Habouzit
0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2008-03-09 10:17 UTC (permalink / raw)
To: Pierre Habouzit; +Cc: Git ML
Pierre Habouzit <madcoder@debian.org> writes:
>> You made the loop a subshell but I think you can redirect into the while
>> loop without an extra "cat" process.
>
> Well probably yeah, I could use an exec -- < series or an alike trick
> for sure.
It seems many people forget that it is perfectly fine to redirect into
while loop itself, like
while read foo bar
do
do a lot of stuff
done <input-file
>> Can a patch name contain $IFS whitespace characters?
>
> I tested and quilt says that:
>
> $ quilt new a\ b.patch
> Patch a is now on top
>
> And when I quilt refresh it, it creates a patch named 'a'. (and yes, I thought
> of this and tested it prior to sending the patch).
>
>> If so, this patch would regress them. Otherwise it looks fine.
Ok, somehow in an earlier patch to quiltimport I picked up an incorrect
notion that they could contain a blank, but then that's fine.
Will queue, but I am very well into my merge binge for tonight (and it
hasn't finished even though it is past 3 AM, sheesh), so it will be in the
next round.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] git-quiltimport: better parser to grok "enhanced" series files.
2008-03-09 10:17 ` Junio C Hamano
@ 2008-03-09 11:27 ` Pierre Habouzit
0 siblings, 0 replies; 5+ messages in thread
From: Pierre Habouzit @ 2008-03-09 11:27 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Git ML
[-- Attachment #1: Type: text/plain, Size: 1201 bytes --]
On Sun, Mar 09, 2008 at 10:17:18AM +0000, Junio C Hamano wrote:
> Pierre Habouzit <madcoder@debian.org> writes:
>
> >> You made the loop a subshell but I think you can redirect into the while
> >> loop without an extra "cat" process.
> >
> > Well probably yeah, I could use an exec -- < series or an alike trick
> > for sure.
>
> It seems many people forget that it is perfectly fine to redirect into
> while loop itself, like
>
> while read foo bar
> do
> do a lot of stuff
> done <input-file
Oh right, well, I assume you already squashed that on top of my patch :)
> Ok, somehow in an earlier patch to quiltimport I picked up an incorrect
> notion that they could contain a blank, but then that's fine.
Well, maybe they could, but quilt doesn't get it right.
> Will queue, but I am very well into my merge binge for tonight (and it
> hasn't finished even though it is past 3 AM, sheesh), so it will be in the
> next round.
That's obviously fine by me, thanks :)
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-03-09 11:27 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-08 18:27 [PATCH] git-quiltimport: better parser to grok "enhanced" series files Pierre Habouzit
2008-03-09 3:39 ` Junio C Hamano
2008-03-09 9:59 ` Pierre Habouzit
2008-03-09 10:17 ` Junio C Hamano
2008-03-09 11:27 ` Pierre Habouzit
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).