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

[PATCH] Fix read-tree merging more than 3 trees using 3-way merge

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 15, 2007, 22:46 UTC
Message-ID
<7vbqd8o1qs.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<600399.61066.qm@web52807.mail.re2.yahoo.com>

For multi-base merges, we allowed read-tree -m to take more than three trees (the last two are our and their branches, and all the earlier ones, typically one but potentially more, are used as the merge base). Unfortunately, the conversion done by commit 933bf40 broke this.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 builtin-read-tree.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/builtin-read-tree.c b/builtin-read-tree.c
index 1967d10..5b07e9a 100644
--- a/builtin-read-tree.c
+++ b/builtin-read-tree.c
@@ -96,7 +96,7 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
 {
 	int i, newfd, stage = 0;
 	unsigned char sha1[20];
-	struct tree_desc t[3];
+	struct tree_desc t[20];
 	struct unpack_trees_options opts;
 
 	memset(&opts, 0, sizeof(opts));
@@ -263,6 +263,9 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
 			opts.head_idx = 1;
 	}
 
+	if (ARRAY_SIZE(t) < nr_trees)
+		die("I cannot read more than %d trees", ARRAY_SIZE(t));
+
 	for (i = 0; i < nr_trees; i++) {
 		struct tree *tree = trees[i];
 		parse_tree(tree);
-- 
1.5.3.rc5
Previous: Junio C HamanoNext: Linus Torvalds
Message 6 of 11 in “1.5.3-rc5 regression on OS X?”
  1. Perrin MeyerAug 15, 2007
  2. Junio C HamanoAug 15, 2007
  3. Brian GernhardtAug 15, 2007
  4. Randal L. SchwartzAug 15, 2007
  5. Junio C HamanoAug 15, 2007
  6. Fix read-tree merging more than 3 trees using 3-way mergeJunio C Hamano, Aug 15, 2007
  7. Linus TorvaldsAug 17, 2007
  8. Junio C HamanoAug 17, 2007
  9. Linus TorvaldsAug 17, 2007
  10. Junio C HamanoAug 17, 2007
  11. Linus TorvaldsAug 17, 2007

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.