git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/3] update cache for conflicting submodule entries

From
Clemens Buchacher <drizzd@aon.at>
Date
Apr 5, 2009, 00:46 UTC
Message-ID
<1238892420-721-3-git-send-email-drizzd@aon.at>
In-Reply-To
<1238892420-721-2-git-send-email-drizzd@aon.at>

When merging merge bases during a recursive merge we do not want to leave any unmerged entries. Otherwise we cannot create a temporary tree for the recursive merge to work with.

We failed to do so in case of a submodule conflict between merge bases, causing a NULL pointer dereference in the next step of the recursive merge.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
---
 merge-recursive.c          |    5 +++--
 t/t7405-submodule-merge.sh |    2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c
index 3e1bc3e..f1b120b 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1118,10 +1118,11 @@ static int process_entry(struct merge_options *o,
 		clean_merge = mfi.clean;
 		if (mfi.clean)
 			update_file(o, 1, mfi.sha, mfi.mode, path);
-		else if (S_ISGITLINK(mfi.mode))
+		else if (S_ISGITLINK(mfi.mode)) {
 			output(o, 1, "CONFLICT (submodule): Merge conflict in %s "
 			       "- needs %s", path, sha1_to_hex(b.sha1));
-		else {
+			update_file(o, 0, mfi.sha, mfi.mode, path);
+		} else {
 			output(o, 1, "CONFLICT (%s): Merge conflict in %s",
 					reason, path);
 
diff --git a/t/t7405-submodule-merge.sh b/t/t7405-submodule-merge.sh
index 9778ad4..aa6c44c 100755
--- a/t/t7405-submodule-merge.sh
+++ b/t/t7405-submodule-merge.sh
@@ -63,7 +63,7 @@ test_expect_failure 'merging with modify/modify conflict' '
 
 '
 
-test_expect_failure 'merging with a modify/modify conflict between merge bases' '
+test_expect_success 'merging with a modify/modify conflict between merge bases' '
 
 	git reset --hard HEAD &&
 	git checkout -b test2 c &&
-- 
1.6.2.1
Previous: Clemens BuchacherNext: Clemens Buchacher
Message 13 of 18 in “Segfault on merge with 1.6.2.1”
  1. Michael JohnsonMar 28, 2009
  2. Miklos VajnaMar 29, 2009
  3. Michael JohnsonMar 30, 2009
  4. Johannes SchindelinMar 30, 2009
  5. Miklos VajnaMar 30, 2009
  6. Michael JohnsonMar 31, 2009
  7. Michael JohnsonApr 1, 2009
  8. Miklos VajnaApr 1, 2009
  9. Clemens BuchacherApr 1, 2009
  10. Michael JohnsonApr 2, 2009
  11. Clemens BuchacherApr 5, 2009
  12. 1/3 add tests for merging with submodulesClemens Buchacher, Apr 5, 2009
  13. 2/3 update cache for conflicting submodule entriesClemens Buchacher, Apr 5, 2009
  14. 3/3 simplify output of conflicting mergeClemens Buchacher, Apr 5, 2009
  15. Junio C HamanoApr 5, 2009
  16. Johannes SchindelinApr 5, 2009
  17. Michael JohnsonApr 6, 2009
  18. Clemens BuchacherApr 6, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.