![](/img/trans.png)
[英]Command line comparison of 2 directories using Beyond Compare or other tool
[英]Using mercurial and beyond compare 3(bc3) as the diff tool?
,etc. 在Windows中,我可以使用winmerge作为hg的外部差异工具,使用等。
使用你可以在网上找到的一些选项开关(我认为这是一个日本网站)无论如何,这里举例如下:
hg winmerge -r1 -r2
将在winmerge中列出rev1和rev2之间的文件更改。 我可以点击哪个文件来区分
但对于bc3:
hg bcomp -r1 -r2
将使bc3打开一个对话框,表明无法找到临时目录。
我能用bc3和hg做的最多的是
hg bcomp -r1 -r2 myfile.cpp
这将打开myfile.cpp的rev1和rev2之间的差异
因此,似乎hg + bc3无法成功确认所有文件在修订之间发生变化。 一次只能传播1个文件。
谁能更好地使用bc3 + hg?
编辑:问题解决了!
从http://www.scootersoftware.com/support.php?zz=kb_vcs.php>scooter支持页面获得解决方案。 instead of Here's a snippet of my mercurial.ini 我必须使用而不是这里是我的mercurial.ini的片段
[extensions] hgext.win32text = ;mhd adds hgext.extdiff = ;mhd adds for bc [extdiff] cmd.bc3 = bcompare opts.bc3 = /ro ;mhd adds for winmerge ;[extdiff] ;cmd.winmerge = WinMergeU ;opts.winmerge = /r /e /x /ub
Beyond-Compare-3是一个了不起的工具。 我建议对设置进行一些调整:
[extensions]
extdiff =
[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /leftreadonly
[merge-tools]
bcomp.executable = C:\Program Files\Beyond Compare 3\BComp
bcomp.args = /leftreadonly /centerreadonly $local $other $base $output
bcomp.priority = 1
[ui]
merge = bcomp
[tortoisehg]
authorcolor = True
vdiff = bcomp
我个人发现最好的Beyond Compare配置可以在Mercurial mergetools.rc file
找到:
[merge-tools]
....
; Windows version of Beyond Compare
beyondcompare3.args=$local $other $base $output /ro /lefttitle=local /centertitle=base /righttitle=other /automerge /reviewconflicts /solo
beyondcompare3.regkey=Software\Scooter Software\Beyond Compare 3
beyondcompare3.regname=ExePath
beyondcompare3.gui=True
beyondcompare3.priority=-2
beyondcompare3.diffargs=/lro /lefttitle='$plabel1' /righttitle='$clabel' /solo /expandall $parent $child
我还发现, 不包括超越比较重要的是extdiff
部分,因此它会使用beyondcompare3
从merge-tools
第diffargs
参数。 (我已经beyondcompare3
在同时指定ui.merge
和tortoisehg.vdiff
)
如果你不断从BC获得这个“文件夹不可用”错误(我做了,当我同时打开几个BC实例时),尝试在命令行中添加选项/solo
,即:
[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /leftreadonly /solo
资料来源: Scooter Software支持论坛
从Scooter软件支持页面查看此页面 - 它还包括大多数版本控制系统的设置 - 一个用于我的书签列表!
片段:
要配置Mercurial,您需要编辑文件%USERPROFILE%\\ Mercurial.ini或$ HOME / .hgrc。 使用现有的INI部分添加以下行(如果它们已存在):
DIFF
[extensions] extdiff =
[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /ro
[tortoisehg] vdiff = bcomp
设置完成后,您可以使用命令行比较修订版本
hg bcomp -r <rev1> [-r <rev2>] [<filename>]
3合并(v3 Pro)
[merge-tools]
bcomp.executable = C:\Program Files\Beyond Compare 3\BComp
bcomp.args = $local $other
$base $output bcomp.priority = 1
bcomp.premerge = True bcomp.gui = True
[ui] merge = bcomp
我必须添加以下内容才能使其在我的机器上运行:
[extensions]
extdiff =
[extdiff]
cmd.bc3 = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bc3 = /ro
我尝试了当时给出的建议但没有成功。
我找到了以下作品:
path
bcompare
现在尝试差异 - 超越比较!
到目前为止给出的所有答案都适用于Windows。 这是我使用Linux的配置。
[extensions]
extdiff =
[extdiff]
cmd.bcomp = bcompare
opts.bcomp = -ro1
[merge-tools]
bcomp.executable = bcompare
bcomp.args = -title1='First Parent' -title2='Second Parent' -title3='Common Ancestor' -title4='Output' -ro1 -ro2 -ro3 $local $other $base $output
bcomp.premerge = True
bcomp.gui = True
-ro#
:禁用指定端的编辑
-title#=<title>
:在路径编辑中显示描述而不是文件名
#
字符:1 =左,2 =右,3 =中心,4 =输出
有关bcompare
更多选项,只需在控制台中执行bcompare -help
即可。
如果您使用的是TortoiseHg,可以通过选择File - > Settings将合并工具设置为Beyond Compare,然后在TortoiseHg选项中选择Visual Diff Tool和Three-way Merge Tool。 此设置也会影响通过命令行设置的合并。
如果您无法正确解析配置,请注意任何变量或部分名称的任何空格都将导致配置错误地解析。 我一直在复制和粘贴不同的配置,并继续出错。 它刚刚结束,在许多变量之前添加了空格,导致它不解析。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.