Issue1459

Title [merge-tools] autodetection suppressed when <tool>.executable is a full path
Priority bug Status resolved
Superseder Nosy List abuehl, fmoo, kiilerix, maxb, tksoh
Assigned To Topics

Created on 2009-01-08.21:06:14 by maxb, last changed 2009-02-09.22:24:47 by kiilerix.

Messages
msg8573 (view) Author: kiilerix Date: 2009-02-09.22:24:46
fix applied in 3793802ea41b - setting state to resolved
msg8365 (view) Author: kiilerix Date: 2009-01-10.19:06:07
I have proposed a patch on
http://selenic.com/pipermail/mercurial-devel/2009-January/009710.html
msg8353 (view) Author: maxb Date: 2009-01-08.21:06:13
When mergetools are configured with a bare (no directory path) executable,
mercurial will detect whether they exist, and automatically skip ones which do not.

However, if the mergetool is defined with a path - e.g.
"filemerge.executable=/Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge"
in contrib/mergetools.hgrc - then mercurial will try to use that tool regardless
of whether it exists or not.

This behaviour is a bit inconsistent, and restricts the use-cases of:
 * A distribution installing contrib/mergetools.hgrc to make as make merge tools
as possible work without further effort once installed.
 * A user sharing their personal .hgrc between multiple machines, with different
software installed.

The code in question is:
mercurial.filemerge._findtool uses mercurial.util.find_exe to process the
<tool>.executable configuration of the [merge-tools] section when deciding which
tool to use.

find_exe has the undesirable (in this case) behaviour of responding differently
to basenames vs. full paths.
History
Date User Action Args
2009-02-09 22:24:47kiilerixsetstatus: in-progress -> resolved
nosy: tksoh, kiilerix, abuehl, fmoo, maxb
messages: + msg8573
2009-01-21 19:36:30abuehlsetnosy: + abuehl
2009-01-11 00:32:56fmoosetnosy: + fmoo
2009-01-10 19:06:07kiilerixsetstatus: unread -> in-progress
nosy: + kiilerix
messages: + msg8365
2009-01-09 05:02:28tksohsetnosy: + tksoh
2009-01-08 21:06:14maxbcreate