Configuration 为Apple Mac OS X配置Mercurial-FileMerge
我如何配置苹果的FileMerge程序,使其能像Mercurial的合并工具一样工作?我在主目录中设置了.hgrc文件,我只想将FileMerge配置为合并程序。更新:Mercurial wiki有一个。先读一读 我还没有尝试使用Configuration 为Apple Mac OS X配置Mercurial-FileMerge,configuration,mercurial,macos,filemerge,Configuration,Mercurial,Macos,Filemerge,我如何配置苹果的FileMerge程序,使其能像Mercurial的合并工具一样工作?我在主目录中设置了.hgrc文件,我只想将FileMerge配置为合并程序。更新:Mercurial wiki有一个。先读一读 我还没有尝试使用FileMerge,但是一个概述可能会有所帮助。您想知道的大部分内容都在Mercurial wiki的页面上进行了描述。简短版本是您的典型选择,包括: 将HGMERGE环境变量设置为指向所需的合并工具 或者,将以下内容添加到.hgrc: [ui] merge = /
FileMerge
,但是一个概述可能会有所帮助。您想知道的大部分内容都在Mercurial wiki的页面上进行了描述。简短版本是您的典型选择,包括:
将HGMERGE
环境变量设置为指向所需的合并工具
或者,将以下内容添加到.hgrc
:
[ui]
merge = /path/to/toolname
[merge-tools]
toolname.args = $base $local $other
关键是合并工具需要接受三个参数:基本修订、本地更改和来自其他分支的更改。您可以使用第一个配置来指定工具,第二个配置来指定它如何接受参数。我还没有尝试过,但我打赌您需要一直指向FileMerge可执行文件,而不仅仅是应用程序包 因此: 如中所述,这对我来说适用于各种版本的hg:
- 在
中的某个位置创建脚本,例如在$PATH
中:/usr/local/bin
- 将以下部分添加到您的
:~/.hgrc
现在您可以使用它作为
$hg opendiff
链接的文档中没有一个不经过修改就可以为我工作;最终我所做的是将和“使用Vim作为文件合并程序”结合起来。我创建了中描述的opendiff-w脚本(尽管我将其命名为hgvdiff),并将以下内容放入我的.hgrc中:
[extdiff]
cmd.interdiff = hg-interdiff
cmd.opendiff = /usr/local/bin/hgvdiff
[merge-patterns]
** = filemerge
[merge-tools]
filemerge.executable = /usr/local/bin/hgvdiff
filemerge.args = $local $other -ancestor $base -merge $output
filemerge.checkchanged = true
filemerge.gui = true
[extensions]
extdiff =
这是一种中等功能,尽管它有时会检查文件是否被过早更改,从而导致一系列:
output file wwwroot/zoomingo/website/protected/messages/en/z.php appears unchanged
was merge successful (yn)? n
关闭文件合并时。以下是我如何修复它的: 创建了
/usr/local/bin/opendiff-w
,填充了:
#!/bin/sh
# opendiff returns immediately, without waiting for FileMerge to exit.
# Piping the output makes opendiff wait for FileMerge.
opendiff "$@" | cat
然后运行命令:sudochmod+x/usr/local/bin/opendiff-w
然后编辑~/.hgrc
,添加以下内容:
[extdiff]
cmd.interdiff = hg-interdiff
cmd.opendiff = opendiff-w
[merge-tools]
filemerge.executable = /usr/local/bin/opendiff-w
filemerge.args = $local $other -ancestor $base -merge $output
[extensions]
extdiff =
然后我运行以下命令检查它是否工作:hg opendiff
但是,我得到了以下错误:
exception raised trying to run FileMerge: launch path not accessible
为了修复它,我运行了以下命令:
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/
现在应该可以工作并打开FileMerge
====================================================================
如果您使用的是TorsoiseHg for Mac,现在要使用FileMerge,您需要做的唯一一件事就是在出现“解决冲突”窗口时从检测到的合并/差异工具中选择FileMerge,然后选择“工具解决”
希望这有帮助。对于其他人:
opendiff-w
是脚本文件,它最终被.hgrc文件引用(这对我来说不太明显)。第一个代码块是内容。另外,更改了为其他人添加executechmod+xopendiff-w
的权限:对我来说不明显的事情:现在需要运行$hg opendiff
(查看文件合并中的输出
)$hg diff
仍将在命令行上为其他人显示输出:。。。您还需要为其他人启用~/.hgrc
中的extdiff扩展。据我所知,使用chmod a+x opendiff-w使opendiff-w
可执行extdiff=
是为了加载扩展。我也尝试过,我得到:FileMerge[51550:30f]无法为root创建连接
[extdiff]
cmd.interdiff = hg-interdiff
cmd.opendiff = opendiff-w
[merge-tools]
filemerge.executable = /usr/local/bin/opendiff-w
filemerge.args = $local $other -ancestor $base -merge $output
[extensions]
extdiff =
exception raised trying to run FileMerge: launch path not accessible
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/