Hi, On Wed, 13 Dec 2006, Catalin Marinas wrote: > On 13/12/06, Junio C Hamano <junkio@xxxxxxx> wrote: > > Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > > > > > Unify the handling for cases C (add/add) and D (modify/modify). > > > > > > On Tue, 12 Dec 2006, Junio C Hamano wrote: > > > > > > > Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > > > > > > > > > How about this: if there is an add/add conflict, we treat it > > > > > as if there _was_ an empty file, and we let the shiny new > > > > > xdl_merge() find the _true_ conflicts, _instead of_ removing > > > > > the file from the index, adding both files with different > > > > > "~blabla" markers appended to their file names to the working > > > > > directory. > > What is this new xdl_merge()? Is it a better replacement for diff3? In > this situation diff3 would actually show two confict parts, each of them > being the full file, with an empty ancestor. xdl_merge(), as Git uses it, tries harder to find the true conflicts. So, if the files actually differ in only one line, just this line will be shown as conflict. There is a flag passed to xdl_merge(), which tells it how hard it should try to make sense of the conflict. We use the "zealous" option, which is most accurate, but also slowest (although I have no numbers). > > This fixes the behaviour in "both branches add the path > > differently" case. Previously merge-recursive did not create > > the working tree file, but now it does just like merge-resolve. > > > > Although I would feel very happy about this change, Catalin > > might want to be informed about potential interaction this > > change might have with his commit 8d41555 in StGIT. > > I don't think it affects StGIT. Previously, "git-read-tree -m" left a > file in the tree in this conflict situation. When I switched to > git-merge-recursive (to handle renames better), I noticed that the > file was no longer there and my merge algorithm failed. It now checks > whether the file is missing and it generates one. Great! Ciao, 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