diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-05-10 13:56:49 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-07-09 14:40:03 -0700 |
commit | f2633ebd766b7f5817ae0ec69060170bb9b1501f (patch) | |
tree | c3139aeef3df05f44d0b1039c5e66e35f25ddf27 | |
parent | 4f4a6cb9882516d75f345772c9bf00b891753f10 (diff) | |
download | git-f2633ebd766b7f5817ae0ec69060170bb9b1501f.tar.gz |
apply: allow rerere() to work on --3way results
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/apply.c | 3 | ||||
-rwxr-xr-x | t/t4108-apply-threeway.sh | 25 |
2 files changed, 28 insertions, 0 deletions
diff --git a/builtin/apply.c b/builtin/apply.c index dc52c9475e..cd68862aa8 100644 --- a/builtin/apply.c +++ b/builtin/apply.c @@ -18,6 +18,7 @@ #include "parse-options.h" #include "xdiff-interface.h" #include "ll-merge.h" +#include "rerere.h" /* * --check turns on checking that the working tree matches the @@ -4026,6 +4027,8 @@ static int write_out_results(struct patch *list) for_each_string_list_item(item, &cpath) fprintf(stderr, "U %s\n", item->string); string_list_clear(&cpath, 0); + + rerere(0); } return errs; diff --git a/t/t4108-apply-threeway.sh b/t/t4108-apply-threeway.sh index 475dfb57ee..e6d4da63b2 100755 --- a/t/t4108-apply-threeway.sh +++ b/t/t4108-apply-threeway.sh @@ -75,4 +75,29 @@ test_expect_success 'apply with --3way' ' test_cmp expect.diff actual.diff ' +test_expect_success 'apply with --3way with rerere enabled' ' + git config rerere.enabled true && + + # Merging side should be similar to applying this patch + git diff ...side >P.diff && + + # The corresponding conflicted merge + git reset --hard && + git checkout master^0 && + test_must_fail git merge --no-commit side && + + # Manually resolve and record the resolution + create_file 1 two 3 4 five six 7 >one && + git rerere && + cat one >expect && + + # should fail to apply + git reset --hard && + git checkout master^0 && + test_must_fail git apply --index --3way P.diff && + + # but rerere should have replayed the recorded resolution + test_cmp expect one +' + test_done |