git-quiltimport: better parser to grok "enhanced" series files.
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>maint
parent
56d5fe2855
commit
9dd5bded1b
|
|
@ -63,7 +63,23 @@ tmp_info="$tmp_dir/info"
|
||||||
commit=$(git rev-parse HEAD)
|
commit=$(git rev-parse HEAD)
|
||||||
|
|
||||||
mkdir $tmp_dir || exit 2
|
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
|
if ! [ -f "$QUILT_PATCHES/$patch_name" ] ; then
|
||||||
echo "$patch_name doesn't exist. Skipping."
|
echo "$patch_name doesn't exist. Skipping."
|
||||||
continue
|
continue
|
||||||
|
|
@ -113,10 +129,10 @@ for patch_name in $(grep -v '^#' < "$QUILT_PATCHES/series" ); do
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$dry_run" ] ; then
|
if [ -z "$dry_run" ] ; then
|
||||||
git apply --index -C1 "$tmp_patch" &&
|
git apply --index -C1 $level "$tmp_patch" &&
|
||||||
tree=$(git write-tree) &&
|
tree=$(git write-tree) &&
|
||||||
commit=$( (echo "$SUBJECT"; echo; cat "$tmp_msg") | git commit-tree $tree -p $commit) &&
|
commit=$( (echo "$SUBJECT"; echo; cat "$tmp_msg") | git commit-tree $tree -p $commit) &&
|
||||||
git update-ref -m "quiltimport: $patch_name" HEAD $commit || exit 4
|
git update-ref -m "quiltimport: $patch_name" HEAD $commit || exit 4
|
||||||
fi
|
fi
|
||||||
done
|
done <"$QUILT_PATCHES/series"
|
||||||
rm -rf $tmp_dir || exit 5
|
rm -rf $tmp_dir || exit 5
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue