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);