apply: allow rerere() to work on --3way results
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
4f4a6cb988
commit
f2633ebd76
@ -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;
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user