merge-recursive: do not die on a conflicting submodule
We cannot represent the 3-way conflicted state in the work tree for these entries, but it is normal not to have commit objects for them in our repository. Just update the index and the life will be good. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d212ca1724
commit
0c44c94309
@ -520,8 +520,12 @@ static void update_file_flags(struct merge_options *o,
|
|||||||
unsigned long size;
|
unsigned long size;
|
||||||
|
|
||||||
if (S_ISGITLINK(mode))
|
if (S_ISGITLINK(mode))
|
||||||
die("cannot read object %s '%s': It is a submodule!",
|
/*
|
||||||
sha1_to_hex(sha), path);
|
* We may later decide to recursively descend into
|
||||||
|
* the submodule directory and update its index
|
||||||
|
* and/or work tree, but we do not do that now.
|
||||||
|
*/
|
||||||
|
goto update_index;
|
||||||
|
|
||||||
buf = read_sha1_file(sha, &type, &size);
|
buf = read_sha1_file(sha, &type, &size);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
|
@ -54,13 +54,13 @@ test_expect_success setup '
|
|||||||
git merge -s ours a
|
git merge -s ours a
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_failure 'merging with modify/modify conflict' '
|
test_expect_success 'merging with modify/modify conflict' '
|
||||||
|
|
||||||
git checkout -b test1 a &&
|
git checkout -b test1 a &&
|
||||||
test_must_fail git merge b &&
|
test_must_fail git merge b &&
|
||||||
test -f .git/MERGE_MSG &&
|
test -f .git/MERGE_MSG &&
|
||||||
git diff
|
git diff &&
|
||||||
|
test -n "$(git ls-files -u)"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'merging with a modify/modify conflict between merge bases' '
|
test_expect_success 'merging with a modify/modify conflict between merge bases' '
|
||||||
|
Loading…
Reference in New Issue
Block a user