X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=git-quiltimport.sh;h=c9aecfd9132f2cb199add497d6c6ab2ebb79fdba;hb=340ce9e25f40ef2fead9fcc027844c66737c85dd;hp=233e5eae1d337bff40d0adba4bbb117bbd4b5dee;hpb=a6828f536119c3288b0be772e3870f1a464d017d;p=git.git diff --git a/git-quiltimport.sh b/git-quiltimport.sh index 233e5eae1..c9aecfd91 100755 --- a/git-quiltimport.sh +++ b/git-quiltimport.sh @@ -1,7 +1,7 @@ #!/bin/sh OPTIONS_KEEPDASHDASH= OPTIONS_SPEC="\ -git-quiltimport [options] +git quiltimport [options] -- n,dry-run dry run author= author name and email address for patches without any @@ -53,7 +53,7 @@ if ! [ -d "$QUILT_PATCHES" ] ; then fi # Temporary directories -tmp_dir=.dotest +tmp_dir="$GIT_DIR"/rebase tmp_msg="$tmp_dir/msg" tmp_patch="$tmp_dir/patch" tmp_info="$tmp_dir/info" @@ -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 @@ -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:+"$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