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: