Should I be able to use mergemaster with freebsd-update?
Mike Brown
mike at skew.org
Sun Jun 23 04:20:11 UTC 2013
I'm using freebsd-update to upgrade my system to the latest minor version
(from 8.3-RELEASE to 8.4-RELEASE).
I'm surprised that the merge handling system isn't more robust. When upgrading
the old way, from source, I was used to using mergemaster to handle any
merges that couldn't be done automatically.
But when using freebsd-update, it seems that any failed merges require that
you get dumped into an empty text editor for each file. It doesn't even tell
you where the new file is so you can load it and compare it to the old one.
After that, you're asked to approve every diff, but if you reject one, you
don't get a chance to re-edit; the entire upgrade aborts and you have to
start all over again.
Since it wasn't obvious what to do, last time I upgraded, I just loaded all my
old files and kept them as-is, without merging them. This time, I'm trying to
actually take care of them when prompted.
When I get dumped into the empty text editor, I suppose it's not too hard to
figure out that the new file is in /var/db/freebsd-update/merge/8.4-RELEASE,
but that's certainly not documented anywhere. It could at least be mentioned
prior to being sent to the editor. The old file is mentioned, so why not the
new?
Regardless, when doing a manual merge by loading both files and consolidating
them, or by copy-paste voodoo between terminal windows, it is far easier to
screw up than mergemaster's method, at least in my experience. So I was
thinking that when I get to this stage of the freebsd-update process, it would
be nice to use mergemaster in a separate terminal window.
I mean, I know where the new files are, and I know where I need the merged
files to go, so it should be just a matter of invoking mergemaster with the
right flags, right? Then when I'm dumped into a text editor, it won't be
empty; I'll see the mergemaster-produced file, and can just give it a
once-over.
The handbook even mentions mergemaster as if it is an option:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/updating-upgrading-freebsdupdate.html#freebsdupdate-config-file
...or at least, it suggests I read about it, for some reason.
But I can't figure out how to get mergemaster to use freebsd-update's file
locations. Here is what I tried:
mergemaster -ciFv -m /var/db/freebsd-update/merge/8.4-RELEASE -D /var/db/freebsd-update/merge/new
Here's what that results in, even if I add trailing slashes:
make: don't know how to make distrib-dirs. Stop
make: don't know how to make distrib-dirs. Stop
*** FATAL ERROR: Cannot 'cd' to /var/db/freebsd-update/merge/8.4-RELEASE and install files to
the temproot environment
Any suggestions appreciated.
More information about the freebsd-questions
mailing list