Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-04-29 22:08:18 +0400
committerJunio C Hamano <gitster@pobox.com>2009-04-30 03:50:21 +0400
commit0c44c94309693d0582e91a6744edc2e8eba46ef8 (patch)
tree478bfc7cd76c4c9432018ddc686eb121eb418c96
parentd212ca1724b1a3708a3b4cb72c58b20ef442b24f (diff)
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>
-rw-r--r--merge-recursive.c8
-rwxr-xr-xt/t7405-submodule-merge.sh6
2 files changed, 9 insertions, 5 deletions
diff --git a/merge-recursive.c b/merge-recursive.c
index d6f0582238..a3721efcaf 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -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)
diff --git a/t/t7405-submodule-merge.sh b/t/t7405-submodule-merge.sh
index aa6c44ce4f..9a21f783d3 100755
--- a/t/t7405-submodule-merge.sh
+++ b/t/t7405-submodule-merge.sh
@@ -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' '