diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-09-26 13:50:45 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-10-21 14:26:49 -0700 |
commit | 3f7672c3bc01268165cf62b1eced7bff035a80f3 (patch) | |
tree | 848898f7484df078e44827cf363c2b190d4766ad | |
parent | 97db0443e4bf02d244cbb4bc2c9e52c0cea5d177 (diff) | |
download | git-je/quiltimport-no-fuzz.tar.gz |
git-quiltimport: flip the default not to allow fuzzje/quiltimport-no-fuzz
Trying to be as strict as possible when applying the patch may be a
good discipline, so let's flip the default but we can be helpful to
those who do rely on the original behaviour thanks to the previous
change to add -C$n option.
Suggest using -C1 when (and only when):
- "git apply" without fuzz fails to apply; and
- the user did not specify a -C$n or --exact option; and
- "git apply -C1" (old behaviour) would have succeeded.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-quiltimport.sh | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/git-quiltimport.sh b/git-quiltimport.sh index 929365f62b..3c1c68d903 100755 --- a/git-quiltimport.sh +++ b/git-quiltimport.sh @@ -15,7 +15,8 @@ SUBDIRECTORY_ON=Yes dry_run="" quilt_author="" -cflag=-C1 +cflag= +fuzz_specified= while test $# != 0 do case "$1" in @@ -31,9 +32,11 @@ do *) ;; esac cflag="-C$1" + fuzz_specified=yes ;; --exact) cflag= + fuzz_specified=yes ;; -n|--dry-run) dry_run=1 @@ -74,6 +77,25 @@ tmp_msg="$tmp_dir/msg" tmp_patch="$tmp_dir/patch" tmp_info="$tmp_dir/info" +# Helper to warn about -C$n option +do_apply () { + if git apply --index ${cflag+"$cflag"} "$@" + then + return + fi + if test -z "$fuzz_specified" && + git apply --check --index -C1 "$@" >/dev/null 2>&1 + then + cat >&2 <<-\EOM + 'git quiltimport' by default no longer attempts to apply + patches with reduced context lines to allow fuzz; if you + want the old 'unsafe' behaviour, run the command with -C1 + option. + EOM + + fi + return 1 +} # Find the initial commit commit=$(git rev-parse HEAD) @@ -145,7 +167,7 @@ do fi if [ -z "$dry_run" ] ; then - git apply --index $cflag ${level:+"$level"} "$tmp_patch" && + do_apply ${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 |