Skip to content

Commit

Permalink
git-quiltimport: better parser to grok "enhanced" series files.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Pierre Habouzit authored and Junio C Hamano committed Mar 10, 2008
1 parent 56d5fe2 commit 9dd5bde
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions git-quiltimport.sh
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,23 @@ 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
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
Expand Down Expand Up @@ -113,10 +129,10 @@ 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
fi
done
done <"$QUILT_PATCHES/series"
rm -rf $tmp_dir || exit 5

0 comments on commit 9dd5bde

Please sign in to comment.