A smarter mergemaster

Bakul Shah bakul at BitBlocks.com
Sat Oct 1 13:34:34 PDT 2005


Here is an idea for the mergemaster hackers' consideration!

By keeping /etc files in a source repository one can archive
and document all local changes.  This is useful for some of
the same reasons for which we keep sources in a repo:
recovery from mistakes, reuse of old code, checking who did
what, more than one person can make changes, tracking
history, debugging etc.

If mergemaster handled or worked with a local cvs /etc repo
that'd be very nice!  The idea is to make changes and test
them in a temp workspace and commit them *only if they do the
right thing*!  I envision a workflow something like this
(using make for illustration purposes):

cd <etc workspace>
make etc-diff	# ensure your workspace reflects what is in /etc
<if resync is needed, commit them to local repo>

make import	# import the latest /usr/src/etc into etc workspace
make diff	# look over the changes
<make any local repairs>
make install	# install to /etc; do mkdb etc.
<check out your changes>

Finally:
make commit	# commit changes to local repo
OR
make undo	# if things didn't quite work, restore /etc to old state.

Roughly, the current mergemaster does the work of make
import, make diff, repairs and install.

Comments?

-- bakul


More information about the freebsd-hackers mailing list