A smarter mergemaster

John Baldwin jhb at FreeBSD.org
Fri Sep 30 07:06:04 PDT 2005


On Friday 30 September 2005 07:08 am, Yar Tikhiy wrote:
> [Replying to everyone who mentioned etcmerge or 3-way merge in general]
>
> On Fri, Sep 30, 2005 at 12:15:59AM -0700, Jon Dama wrote:
> > It is worth while to mention sysutils/etcmerge.
> >
> > Having the "three-way" merge makes the process much better.  The primary
> > way I've shot myself with mergemaster is forgetting some local change.
> >
> > Being able to distinguish the class of things that are changing upstream
> > really helps the situation and provides a more reasonable indication of
> > the default:
> >    if it changed upstream but not locally => default is install
> >    if it changed locally but not upstream => default is keep
> >    if it changed locally and upstream => default is merge
>
> Obviously, in order to do a 3-way merge, we need information about
> the old versions of original files as well.  However, currently we
> have only the new versions in /usr/src and local versions in /etc
> for mergemaster to work with.  I'll be glad to hear how etcmerge
> approaches this issue.
>
> In any case, we cannot offer the users to access the CVS repo when
> merging /etc.  Personally, I'd like to see a complete copy of current
> unmodified /etc files installed to /usr/share/examples/etc.  They
> could serve as the old original versions for the 3-way merge then.
> Alas, now the copy installed there is rather incomplete, motivation
> of which is unknown to me yet.  Any ideas?

I do the equivalent of etcmerge (sort of) by hand using some old instructions 
from the handbook (pre-mm).  Basically, for each installworld, you do a 
distribute of src/etc into /var/tmp/root-YYMMDD.  Then you keep around the 
previous tree and just compare the two previous trees and merge those changes 
into /etc.

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-hackers mailing list