Handbook:Parts/Portage/Tools

dispatch-conf
is a tool that aids in merging the files. files are generated by portage when it wants to overwrite a file in a directory protected by the CONFIG_PROTECT variable.

With, users are able to merge updates to their configuration files while keeping track of all changes. stores the differences between the configuration files as patches or by using the RCS revision system. This means that if someone makes a mistake when updating a config file, the administrator can revert the file to the previous version at any time.

When using, users can ask to keep the configuration file as-is, use the new configuration file, edit the current one or merge the changes interactively. also has some nice additional features:
 * Automatically merge configuration file updates that only contain updates to comments
 * Automatically merge configuration files which only differ in the amount of whitespace

Edit first and create the directory referenced by the archive-dir variable. Then, execute :

When running, each changed config file will pass the revue one at a time. Press to update (replace) the current config file with the new one and continue to the next file. Press to zap (delete) the new config file and continue to the next file. Once all config files have been taken care of,  will exit. At any time, can be used to exit the application as well.

For more information, check out the dispatch-conf man page. It describes how to interactively merge current and new config files, edit new config files, examine differences between files, and more.

etc-update
Another tool to merge configuration files is. It's not as simple to use as, nor as featureful, but it does provide an interactive merging setup and can also auto-merge trivial changes.

However, unlike,   does not preserve the old versions of the config files. Once a file is updated, the old version is gone forever! So be very careful, as using  is significantly less safe than using   in that regard.

After merging the straightforward changes, a list of protected files will be provided that have an update waiting. At the bottom the possible options are shown:

Options presented by etc-update

With -1,  will exit and discontinue any other changes. With -3 or -5, all listed configuration files will be overwritten with the newer versions. It is therefore very important to first select the configuration files that should not be automatically updated. This is simply a matter of entering the number listed to the left of that configuration file.

As an example, we select the configuration file :

Updating a specific configuration file

The differences between the two files are shown. If the updated configuration file can be used without problems, enter 1. If the updated configuration file isn't necessary, or doesn't provide any new or useful information, enter 2. If the current configuration file has to be interactively updated, enter 3.

There is no point in further elaborating the interactive merging here. For completeness sake, we will list the possible commands that can be used while interactively merging the two files. Users are greeted with two lines (the original one, and the proposed new one) and a prompt at which the user can enter one of the following commands:

Commands available for the interactive merging

After having finished updating the important configuration files, users can then automatically update all the other configuration files. will exit if it doesn't find any more updateable configuration files.