Sorry for such a simple question, but I can't figure this out for the life of me. Neither DISPATCH-CONF(1) nor wiki.gentoo.org/wiki/Dispatch-conf provide any instructions.

When running dispatch-conf:

  1. The diff is output, e.g.:
--- /etc/systemd/resolved.conf  2021-06-09 19:50:06.087987199 +0200
+++ /etc/systemd/._cfg0000_resolved.conf        2021-06-11 18:55:30.403772359 +0200
@@ -22,7 +22,7 @@
 #FallbackDNS= 2606:4700:4700::1111 2001:4860:4860::8888 2606:4700:4700::1001 2001:4860:4860::8844
  1. The prompt is shown:
>> (1 of 1) -- /etc/systemd/resolved.conf
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge:
  • Pressing m shows:
#DNSSEC=false                                                 | #DNSSEC=allow-downgrade

Am I supposed to choose one? If so, how? Typing 1 or 2 doesn't work.

  • Pressing t toggles between ._cfg0000_resolved.conf and ._mrg0000_resolved.conf
  • Pressing l hides the diff output

1 Answer 1


I am sure this is documented somewhere, such as in dispatch-conf(1), but I will try to describe it quick. disclaimer: I had to check the manpage for t and l.

In the initial (second) screen with the prompt, here are what the actions do:

  • q exit from dispatch-merge without doing anything. This is always safe. You can resume later by running dispatch-merge at any time.
  • h show longer help
  • n skip the current file (it will come up again if you run dispatch-merge later).
  • e open ${EDITOR} with the new version of the file. Your editor will be pointed to a temporary copy of the new version of the file as provided by the most recently installed ebuild. If you want to re-make changes you had made to the configuration file, you can, in your editor, open the current active version of the configuration file for reference. You should save the file that dispatch-conf passed and then close your editor and you will be back at the dispatch-conf prompt with the diff reshown.
  • z zap new means to delete the version of the config file that came from the newly installed package and keep using your old one. Use this if you know the configuration file format did not change and you had major changes to it and you know that the new changes from the ebuild are typographical/comment/unimportant. This action is committed immediately before dispatch-conf shows you the next file.
  • u use-new means delete your current version of the file with the changes you had made and just use the new file as provided by the package. Sometimes you want this if you had made temporary changes that you did not mean to make permanent. Or sometimes you do this and then go back later and re-customize the file (make your own TODO list somewhere if using this strategy). This action is committed immediately before dispatch-conf shows you the next file.
  • m opens the merge interface described briskly below.
  • t will swap the “to be installed” version of the file between the version provided by the ebuild and the version you built using m.
  • l shows the difference between the version of the file provided by the ebuild and the version you built using m.

When you press m, that goes into interactive merge mode. You can press ? as a command in there to figure out what that does. Within m, a few things you can do are:

  • r or 2 use the right side (which is what the new file as freshly installed by the ebuild without your customizations is).
  • l or 1 use the left side (which is what the old/original/current file is).
  • er or e2 to use the right but then open an editor to edit it.
  • el or e1 edit left
  • eb edit both
  • ed edit both, each decorated with header
  • e discard both

In merge mode, once you get past all of the different chunks, it will return you back to that main menu. The version that you created using the merge will be treated as the new file (replacing what the ebuild installed). So it will show you the diff again and you can re-merge it or z (zap) or u (use) it.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .