Merge branch 'bg/apply-blank-trailing-context'
authorJunio C Hamano <gitster@pobox.com>
Sun, 9 May 2010 05:37:41 +0000 (22:37 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 9 May 2010 05:37:41 +0000 (22:37 -0700)
* bg/apply-blank-trailing-context:
apply: Allow blank *trailing* context lines to match beyond EOF

builtin/apply.c
t/t4124-apply-ws-rule.sh
index d56cabf5e2a5fad1cf98d74c38b2623f7150033b..8fc5ec31deae63122878bdb776921bcf656fb791 100644 (file)
@@ -1866,13 +1866,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 {
index 8d46df6c3abd0643031106dac15758fdbe5f2ccd..d0af697aa129466172e27456c597f329f9c4f027 100755 (executable)
@@ -330,6 +330,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 &&