i have written merge extension with history
Vadim Gelfer
vadim.gelfer at gmail.com
Sun Mar 12 20:37:32 UTC 2006
in last few days, i have cleaned up some internals to give more infos
to external merge program.
reason for this is that i have written merge program that uses
complete file history to make merge decisions.
3-way merge like in rcs merge and diff3 sometimes gives conflicts or
makes really bad merges when it should not.
my merge extension uses module called edgemerge.py written by bram
cohen. his module uses complete file history to make decision about
merges. it is very nice. see http://revctrl.org/PreciseCodevilleMerge
for info.
it can do some things that 3-way merge can not do:
if identical change made by different people in many different
branches (example, using import), it does not give false conflicts.
see http://revctrl.org/Convergence for info.
handles thing called staircase merge. see
http://revctrl.org/StaircaseMerge for info.
also does thing called edge versioning. see
http://revctrl.org/EdgeVersioning for info.
only drawback of merge extension now is that it is slow. it does not
cache file history yet, but i will make it do this. then it will be
very fast, and i think always better than 3-way merge. i am very
excited about this extension.
you can pull changes from http://hg.intevation.org/mercurial/vadim
because i cannot make named branch there, you will get repo with two
heads. one head is template code. one head is history merge. i want to
keep them separate until i fix template code and put in crew.
More information about the Mercurial
mailing list