git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] git-quiltimport: better parser to grok "enhanced" series files.

From
Pierre Habouzit <madcoder@debian.org>
Date
Mar 8, 2008, 18:27 UTC
Message-ID
<20080308182709.GA3109@artemis.madism.org>
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
Next: Junio C Hamano
Message 1 of 5 in “git-quiltimport: better parser to grok "enhanced" series files.”
  1. git-quiltimport: better parser to grok "enhanced" series files.Pierre Habouzit, Mar 8, 2008
  2. Junio C HamanoMar 9, 2008
  3. Pierre HabouzitMar 9, 2008
  4. Junio C HamanoMar 9, 2008
  5. Pierre HabouzitMar 9, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.