t4150: am fails if index is dirty
authorPaul Tan <pyokagan@gmail.com>
Sun, 19 Jul 2015 15:49:08 +0000 (23:49 +0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 20 Jul 2015 17:51:02 +0000 (10:51 -0700)
Since d1c5f2a (Add git-am, applymbox replacement., 2005-10-07), git-am
will ensure that the index is clean before applying the patch. This is
to prevent changes unrelated to the patch from being committed.

Add a test for this check.

Reviewed-by: Stefan Beller <sbeller@google.com>
Reviewed-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4150-am.sh
index 264f53f511f93ab630c1b81071ea69da0a990cc6..a85e06aa033d11fce4b561df559925febce7914f 100755 (executable)
@@ -154,6 +154,18 @@ test_expect_success 'am applies patch correctly' '
        test "$(git rev-parse second^)" = "$(git rev-parse HEAD^)"
 '
 
+test_expect_success 'am fails if index is dirty' '
+       test_when_finished "rm -f dirtyfile" &&
+       rm -fr .git/rebase-apply &&
+       git reset --hard &&
+       git checkout first &&
+       echo dirtyfile >dirtyfile &&
+       git add dirtyfile &&
+       test_must_fail git am patch1 &&
+       test_path_is_dir .git/rebase-apply &&
+       test_cmp_rev first HEAD
+'
+
 test_expect_success 'am applies patch e-mail not in a mbox' '
        rm -fr .git/rebase-apply &&
        git reset --hard &&