I have =sys-apps/portage-2.3.24-r1 installed on my machine. In /etc/dispatch-conf.conf, I have these modifications: # diff="diff -Nu '%s' '%s'" diff="colordiff -Nu '%s' '%s'" #merge="sdiff --suppress-common-lines --output='%s' '%s' '%s'" merge="vimdiff -c'saveas %s' -c next -c'setlocal noma readonly' -c prev %s %s" For example, now I execute emerge --oneshot xxx-xxx/some-package and merge some package. Then I see this: * IMPORTANT: config file '/path/to/some/file' needs updating. I execute dispatch-conf Then I press "m" (merge). Vim is being opened. Then I make some changes in the left buffer and close both buffers by pressing Esc Esc Z Z Z Z Al my changes are applied, all is successfully merged and saved. But dispatch-conf does not quit automatically. In terminal, I still see this: _______________ --- /path/to/some/file 2018-02-15 03:27:37.607284510 +0300 +++ /path/to/some/._mrg0000_file 2018-02-15 07:49:05.543600341 +0300 ... >> (1 of 1) -- /path/to/some/file >> q quit, h help, n next, e edit-new, z zap-new, u use-new m merge, t toggle-merge, l look-merge: _______________ I press q. Then I execute dispatch-conf again in terminal and do not see merge requests there. Why did dispatch-conf not quit automatically when all merges were done? I think it's a bug. Nota bene: when I do not modify "merge=" option in dispatch-conf.conf, dispatch-conf utility works excellent: it quits automatically when all the config merges are done.
By the way, I copied /etc/dispatch-conf.conf settings for colordiff and vimdiff from here: https://wiki.gentoo.org/wiki/Dispatch-conf