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

Re: [BUG] - git-read-tree segfaults

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Mar 11, 2009, 12:04 UTC
Message-ID
<alpine.DEB.1.00.0903111300330.10279@pacific.mpi-cbg.de>
In-Reply-To
<35476bd20903110059v7d6d8aa0g93af17a940c91919@mail.gmail.com>
Hi,
On Wed, 11 Mar 2009, Jiri Olsa wrote:
Show 13 quoted lines
> On Tue, Mar 10, 2009 at 9:21 PM, Johannes Schindelin
> <Johannes.Schindelin@gmx.de> wrote:
>
> > On Tue, 10 Mar 2009, Jiri Olsa wrote:
> >
> >> mb=$($GIT merge-base HEAD yyy)
> >> $GIT read-tree $mb HEAD yyy
> >
> > While I agree that it is a bad thing for Git to segfault, I think this 
> > here is a pilot error.  You try to read 3 trees at the same time, but 
> > not perform a merge.  IMHO you want to add -m at least.
> 
> agreed, I've already said I executed it like this by an accident...

Hey, you did the right thing! And you even provided a script to recreate, so that it was really easy to see what is happening.

> it was easy to recreate so I shared... I'm not saying it is a show 
> stopper :)

Well, Git should not crash. But read-tree is real low-level, so I am torn. OTOH, something like this may be the correct thing to do:

-- snipsnap --
Subject: [PATCH] Make read-tree with multiple trees imply -m
Noticed by Jiri Olsa.
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---
 builtin-read-tree.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/builtin-read-tree.c b/builtin-read-tree.c
index 8e02738..547ac25 100644
--- a/builtin-read-tree.c
+++ b/builtin-read-tree.c
@@ -221,6 +221,11 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
 			opts.head_idx = 1;
 	}
 
+	if (nr_trees > 1 && !o->merge) {
+		warning("Assuming -m with multiple trees");
+		o->merge = 1;
+	}
+
 	for (i = 0; i < nr_trees; i++) {
 		struct tree *tree = trees[i];
 		parse_tree(tree);
Previous: Jiri OlsaNext: Junio C Hamano
Message 5 of 11 in “[BUG] - git-read-tree segfaults”
  1. Jiri OlsaMar 10, 2009
  2. Johannes SchindelinMar 10, 2009
  3. Johannes SchindelinMar 10, 2009
  4. Jiri OlsaMar 11, 2009
  5. Johannes SchindelinMar 11, 2009
  6. Junio C HamanoMar 12, 2009
  7. Junio C HamanoMar 12, 2009
  8. read-tree A B C: do not create a bogus index and do not segfaultJunio C Hamano, Mar 12, 2009
  9. Daniel BarkalowMar 12, 2009
  10. Linus TorvaldsMar 12, 2009
  11. Junio C HamanoMar 14, 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.