automatic merging of "set of lines" text files with a specific git merge driver (union?)
snhmnd at gmail.com
Mon Feb 21 18:42:47 CET 2011
> > Git does do a terrible job of merging these files though. Here's an
> > earlier email I wrote about the problem as I see it:
> > http://lists.madduck.net/pipermail/vcs-home/2010-April/000253.html
> > As suggested in that thread, I think a "patience merge" based on the
> > patience diff algorithm might handle them well. Git comes with an
> > implementation of patience diff. I think you could do it with a custom
> > merge driver. Also, I think bzr does this kind of merge by default.
> I think the use case I described is just some generalisation (or
> specification, depending on how you look at it) of the problem you
> So if patience merge was your magical solution, then I should definitely
> try it. However, since merging and diffing are really very different
> things, I should look into how the patience merging algorithm works, and
> if it would even help in my (or your case). The diff algorithm seems
> clever, I might enable it by default just to see how it works.
> So, what's your experience with the patience merge?
I think the merge algorithm would just be whatever git currently uses,
except that it would use patience diff to produce the diffs that are fed
into the merge algorithm.
I haven't been using it as I haven't got it working with git, although I
think it should be doable with a simple custom merge driver or git
patch. But when I briefly tested merging my log.txt file with bzr (which
uses patience diff by default when merging) I found that it merged the
file correctly automatically. So a quick way to try it out for your use
case might be to test with bzr.
More information about the vcs-home