# mergemaster assistance request



## dcbdbis (Dec 4, 2010)

I've just borked an installation on a test system. I've borked it due to a lack of understanding. I'm coming from linux. Gentoo to be specific.

After I have:

`# make buildworld`

then I

`# make installworld`

Then I

`# mergemaster -Ui`


And this is where I am failing. specifically on files I've changed that I want to merge. I select "m" from the menu, then I get this "%" prompt, then I press "q", then I press "i".

I end up with empty master.passwd and group files. I clearly am not understanding the man page about mergemaster, or better yet, the diff it is trying to show me.

I don't know what to do at the "%" prompt. When I press the down arrow (to scroll through the file) I get weird characters instead.

So clearly, I am not understanding either what 'diff' is asking me for, or what 'mergemaster' is expecting me to press.

Can someone please point me to a guide (other than a man page, been there and don't understand it).

I've not interacted with 'diff' before if that is where the "%" prompt is coming from.

I want to merge the files, then go back in later and remove what I don't want in it. Kinda opposite of leave it for later and manually modify the files. Especially the master.passwd file.....It's got a lot of terse jibberish as the encryption for the password itself.


So in this process, what keystrokes do I need to issue in the mergemaster process to end up with a truly merged file installed in /etc?


I appreciate your assistance,



Sincerly,


Dave.


----------



## UNIXgod (Dec 4, 2010)

Hi Dave

I usually mergemaster -p install world and then run mergemaster.

It's always a good idea to backup /etc before running mergemaster as it can break your system if you botch it.

Most files don't need to be merged. You need to remember what you changed in /etc. rc.conf is a good example. 

Files you haven't changed you should press -i. You didn't change them. They can be updated.

your passwd and group files you should leave alone.

If you write over one of your files you need just pull it from the backup you made.

mergemaster is the analog to dispatch-conf or etcupdate in gentoo.


----------



## dcbdbis (Dec 4, 2010)

Thanks!

That what I did on iteration #2......and all went well. But still I don't understand what the "%" prompt is asking me to do when I do tell it to merge.... 

What is this little "%" prompt that comes up after I push the 'm' for merge?  The man page for diff and mergemaster aren't enlightening me.... 

Also, pushing the "h" key at this prompt gives me a really weird character pair to push. I mean, I feel likes it's the first time I ever used 'vi'!

Am I reading the wrong man page? If you've got a link to something that will enlighten me, I'll be all over it.....


Thanks!


Dave


----------



## DutchDaemon (Dec 4, 2010)

First: don't upgrade the world without also upgrading the kernel. They're one operating system together. Upgrade both, or neither. Follow the steps in /usr/src/Makefile (12 steps).

Second: mergemaster prints the options pretty clearly, and most of the time you'll have to choose either '*l*' (for the line printed on the left) or '*r*' (for the line printed on the right) when merging files, then '*i*' (install the resulting merged file -- you can also 'view' or 'redo', I believe).


----------



## Pfarthing6 (Apr 6, 2011)

This is a bit old, but since I just ran into the exact same problem trying to select the "m" option for "merge", I have to say, it doesn't work. I too get the "%" prompt and end up with a blank file.

If there is something I'm supposed to do manually at the "%" prompt, then I haven't a clue what it is.

After getting hit with it twice, I decided to just do the -Ui and merge things by hand, the default option.

Can anyone enlighten me as to the "%" prompt? What does it expect me to do at this point?

thanks!


----------



## phoenix (Apr 6, 2011)

When you press *m*, you will be shown a line(s) from the old file on the left, and the corresponding line(s) from the new file on the right.  You press *l* to keep the line from the old file; *r* to keep the line from the new file; *e l* if you want to edit the line on the left before accepting it; *e r* if you want to edit the line on the right before accepting it.

This is all in the mergemaster() man page.


----------

