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