Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
git-quiltimport: better parser to grok "enhanced" series files.
author
Pierre Habouzit
<madcoder@debian.org>
Sat, 8 Mar 2008 18:27:09 +0000
(19:27 +0100)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 10 Mar 2008 06:45:12 +0000
(23:45 -0700)
The previous parser wasn't able to grok:
* empty lines;
* annotated patch levels (trailing -pNNN annotations);
* trailing comments.
Now it understands them and uses the patch level hints as a git apply
argument.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-quiltimport.sh
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
56d5fe2
)
diff --git
a/git-quiltimport.sh
b/git-quiltimport.sh
index 233e5eae1d337bff40d0adba4bbb117bbd4b5dee..84c8b8ef4fbfa55d503a10006f7f3cecee57391c 100755
(executable)
--- a/
git-quiltimport.sh
+++ b/
git-quiltimport.sh
@@
-63,7
+63,23
@@
tmp_info="$tmp_dir/info"
commit=$(git rev-parse HEAD)
mkdir $tmp_dir || exit 2
commit=$(git rev-parse HEAD)
mkdir $tmp_dir || exit 2
-for patch_name in $(grep -v '^#' < "$QUILT_PATCHES/series" ); do
+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 in series file: $garbage"
+ exit 1;;
+ esac
if ! [ -f "$QUILT_PATCHES/$patch_name" ] ; then
echo "$patch_name doesn't exist. Skipping."
continue
if ! [ -f "$QUILT_PATCHES/$patch_name" ] ; then
echo "$patch_name doesn't exist. Skipping."
continue
@@
-113,10
+129,10
@@
for patch_name in $(grep -v '^#' < "$QUILT_PATCHES/series" ); do
fi
if [ -z "$dry_run" ] ; then
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
fi
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
fi
-done
+done
<"$QUILT_PATCHES/series"
rm -rf $tmp_dir || exit 5
rm -rf $tmp_dir || exit 5