是否将OrtowisEmerge设置为SVN的外部合并工具?

是否将OrtowisEmerge设置为SVN的外部合并工具?,svn,tortoisesvn,tortoisemerge,Svn,Tortoisesvn,Tortoisemerge,是否可以使用“svn merge”命令行将OrtoiseSwerge(随TortoiseSVN提供)设置为当遇到合并冲突时弹出的外部合并工具?我尝试将环境变量“SVN_MERGE”设置为指向TortoiseMerge.exe,但这似乎不够。当我选择“l”(启动一个外部工具)询问我要合并哪些文件时,OtteroisEmerge就会弹出。我希望此信息自动推入工具 有什么想法吗?我不知道您使用的是哪个版本的Subversion,所以我将尝试参考最新版本的1.6中的信息。(他们在该页面上添加了“如果您将

是否可以使用“svn merge”命令行将OrtoiseSwerge(随TortoiseSVN提供)设置为当遇到合并冲突时弹出的外部合并工具?我尝试将环境变量“SVN_MERGE”设置为指向TortoiseMerge.exe,但这似乎不够。当我选择“l”(启动一个外部工具)询问我要合并哪些文件时,OtteroisEmerge就会弹出。我希望此信息自动推入工具


有什么想法吗?

我不知道您使用的是哪个版本的Subversion,所以我将尝试参考最新版本的1.6中的信息。(他们在该页面上添加了“如果您将特定部分添加到书签或链接,这些链接可能会因继续开发而失效。”但1.6没有稳定的版本。)

首先是:

要使用合并工具,您需要 或者设置SVN_合并环境 变量或定义合并工具cmd Subversion中的选项 配置文件(请参阅一节 称为的“配置选项” 更多细节)。颠覆将会过去 合并工具的四个参数: 文件的基本修订版 从服务器收到的文件的修订版 服务器作为更新的一部分,复制 包含本地 编辑,以及文件的合并副本 (其中包含冲突标记)。如果 您的合并工具需要参数 以不同的顺序或格式,您将 需要为编写包装器脚本 要调用的Subversion

稍微好一点的消息是,Subversion在某种程度上已经预料到了您的问题。见本节;有外部合并工具包装的模板

在您的特定情况下,将从命令行解释如何使用它。基本开关是
/base
/mine
/theres
,但您可能需要使用更多开关(毕竟,您正在编写自己的包装器脚本)。陆龟也允许命令的“简化形式”:

TortoiseMerge BaseFilePath MyFilePath TheirFilePath

将合并结果传回Subversion的方法是将合并文件写入标准输出并返回适当的值。此信息在Subversion手册的包装器模板中的显著位置。

创建一个如下所示的bat脚本:

"c:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe" /base:"%1" /theirs:"%2" /mine:"%3" /merged:"%4"
然后将SVN_MERGE环境变量设置为该bat脚本:

set SVN_MERGE=c:\bin\svnmerge.bat

谢谢我最终在帮助中发现了“使用外部差分和合并工具”。