[PATCH] git-quiltimport: better parser to grok "enhanced" series files.
From: Pierre Habouzit <hidden>
Date: 2016-06-15 22:44:21
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted> --- 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