Hi, On Fri, 8 May 2009, Junio C Hamano wrote: > Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > > > When there is no "common" tree (for whatever reason), we must not > > throw a segmentation fault. > > You described why the old code was wrong (i.e. "init_tree_desc_from_tree > is called with common == NULL"), but there is no mention why the new > code is correct. For the purpose of satisfying the above statement, you > could have just exit(0) as well ;-) Yes, I should have marked this patch as "please test if the result is what you think it should be", because I was running out of time and therefore could not properly think things through. > > + else { > > + opts.merge = 0; > > + opts.head_idx = 1; > > + init_tree_desc_from_tree(t+0, head); > > + init_tree_desc_from_tree(t+1, merge); > > + rc = unpack_trees(2, t, &opts); > > + } > > This looks more like a half of branch-switch from HEAD to MERGE, not a > merge between HEAD and MERGE as two equal histories. Shouldn't it be > doing a three-way tree merge using an empty tree object as the common > ancestor instead, just like merge_recursive.c::merge_recursive() itself > does? But of course! Thanks, Dscho -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html