aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-06-21 05:38:36 -0700
committerJunio C Hamano <gitster@pobox.com>2010-06-21 05:38:36 -0700
commite1ba0f6340c1d72677c7792a0a82ecf05363026e (patch)
treef298b749b5dbdc6e1e3d639da3950c3287f2a81a
parent70649945c215b1674611a40eda1d0058118a6d1a (diff)
parent0c3ef984fa2d4a42be787e168cfb189d15b00919 (diff)
downloadgit-e1ba0f6340c1d72677c7792a0a82ecf05363026e.tar.gz
git-e1ba0f6340c1d72677c7792a0a82ecf05363026e.tar.xz
Merge branch 'bg/apply-blank-trailing-context' into maint
* bg/apply-blank-trailing-context: apply: Allow blank *trailing* context lines to match beyond EOF
-rw-r--r--builtin/apply.c12
-rwxr-xr-xt/t4124-apply-ws-rule.sh12
2 files changed, 18 insertions, 6 deletions
diff --git a/builtin/apply.c b/builtin/apply.c
index 771c972c5..f669157b4 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -1864,13 +1864,13 @@ static int match_fragment(struct image *img,
if (match_end && (preimage->nr + try_lno != img->nr))
return 0;
} else if (ws_error_action == correct_ws_error &&
- (ws_rule & WS_BLANK_AT_EOF) && match_end) {
+ (ws_rule & WS_BLANK_AT_EOF)) {
/*
- * This hunk that matches at the end extends beyond
- * the end of img, and we are removing blank lines
- * at the end of the file. This many lines from the
- * beginning of the preimage must match with img, and
- * the remainder of the preimage must be blank.
+ * This hunk extends beyond the end of img, and we are
+ * removing blank lines at the end of the file. This
+ * many lines from the beginning of the preimage must
+ * match with img, and the remainder of the preimage
+ * must be blank.
*/
preimage_limit = img->nr - try_lno;
} else {
diff --git a/t/t4124-apply-ws-rule.sh b/t/t4124-apply-ws-rule.sh
index fb9ad247b..451d75e3f 100755
--- a/t/t4124-apply-ws-rule.sh
+++ b/t/t4124-apply-ws-rule.sh
@@ -325,6 +325,18 @@ test_expect_success 'two missing blank lines at end with --whitespace=fix' '
test_cmp one expect
'
+test_expect_success 'missing blank line at end, insert before end, --whitespace=fix' '
+ { echo a; echo; } >one &&
+ git add one &&
+ { echo b; echo a; echo; } >one &&
+ cp one expect &&
+ git diff -- one >patch &&
+ echo a >one &&
+ test_must_fail git apply patch &&
+ git apply --whitespace=fix patch &&
+ test_cmp one expect
+'
+
test_expect_success 'shrink file with tons of missing blanks at end of file' '
{ echo a; echo b; echo c; } >one &&
cp one no-blank-lines &&