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:
Junio C Hamano 2009-04-29 11:08:18 -07:00
parent d212ca1724
commit 0c44c94309
2 changed files with 9 additions and 5 deletions

View file

@ -520,8 +520,12 @@ static void update_file_flags(struct merge_options *o,
unsigned long size;
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);
if (!buf)

View file

@ -54,13 +54,13 @@ test_expect_success setup '
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 &&
test_must_fail git merge b &&
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' '