Bug#817085: unison: Cannot run emacs from merge tool
Package: unison
Version: 2.40.65-2
Severity: normal
Quoting the long and annoyingly flat reference manual:
>>
A large number of external merging programs are available. For
example, on Unix systems setting the merge preference to
merge = Name *.txt -> diff3 -m CURRENT1 CURRENTARCH CURRENT2
> NEW || echo "differences detected"
will tell Unison to use the external diff3 program for merging.
Alternatively, users of emacs may find the following settings
convenient:
merge = Name *.txt -> emacs -q --eval '(ediff-merge-files-with-ancestor
"CURRENT1" "CURRENT2" "CURRENTARCH" nil "NEW")'
<<
Yea, they may; if, presumably like the author, they never run emacs in
its text mode aspect. Then they'll find out it doesn't work, because
unison runs the merge tool (just like any other external program) with
stdin connected to an empty pipe, and emacs expects the terminal there.
unison should leave the stdin alone when forking external programs, even
if it would take a bit more coding due to deficiency of the ocaml
standard library.
-- System Information:
Debian Release: 7.9
APT prefers oldstable-updates
APT policy: (500, 'oldstable-updates'), (500, 'oldstable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.12.55.2 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages unison depends on:
ii libc6 2.13-38+deb7u10
Versions of packages unison recommends:
ii openssh-client [ssh-client] 1:6.6p1-4~bpo70+1
Versions of packages unison suggests:
pn unison-all <none>
Reply to: