Version control 使用mercurial和beyond compare 3(bc3)作为差异工具?
在windows中,我可以使用mercurial.ini等将winmerge用作hg的外部差异工具。Version control 使用mercurial和beyond compare 3(bc3)作为差异工具?,version-control,mercurial,diff,beyondcompare,Version Control,Mercurial,Diff,Beyondcompare,在windows中,我可以使用mercurial.ini等将winmerge用作hg的外部差异工具。 使用一些你们可以在网上找到的选项开关(我想这是一个日本网站) 不管怎样,在这里 例如: hg winmerge -r1 -r2 hg winmerge-r1-r2 将在winmerge中列出rev1和rev2之间的文件更改。我可以单击要区分的文件 但对于bc3: hg bcomp -r1 -r2 hg bcomp-r1-r2 将使bc3打开一个说明找不到临时目录的对话框 使用bc3和hg我能做
使用一些你们可以在网上找到的选项开关(我想这是一个日本网站) 不管怎样,在这里 例如: hg winmerge -r1 -r2 hg winmerge-r1-r2 将在winmerge中列出rev1和rev2之间的文件更改。我可以单击要区分的文件 但对于bc3: hg bcomp -r1 -r2 hg bcomp-r1-r2 将使bc3打开一个说明找不到临时目录的对话框 使用bc3和hg我能做的最多就是 hg bcomp -r1 -r2 myfile.cpp 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>滑板车支持页面。 我必须用bcompare而不是bcomp 这是我的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 [延期] hgext.win32text= ;mhd补充道 hgext.extdiff= ;磁流体力学为卑诗省增加 [extdiff] cmd.bc3=bcompare opts.bc3=/ro ;mhd为winmerge添加了 ;[extdiff] ;cmd.winmerge=WinMergeU ;opts.winmerge=/r/e/x/ub
我必须添加以下内容才能在我的机器上工作:
[extensions]
extdiff =
[extdiff]
cmd.bc3 = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bc3 = /ro
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
如果您一直从BC收到此“文件夹不可用”错误(当我同时打开多个BC实例时,我收到了),请尝试向命令行添加选项/solo
,即:
[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /leftreadonly /solo
来源:-它还包括大多数版本控制系统的设置-一个用于我的书签列表
片段:
要配置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>]
我尝试了当时提出的建议,但没有一个奏效 我发现了以下作品:
path
bcompare
现在尝试一个差异-超越比较 就我个人而言,我发现最好的Beyond Compare配置可以在Mercurial文件中找到:
我还发现在
extdiff
部分中NOT包含Beyond Compare非常重要,因此它将使用merge tools
部分的beyondcompare3
和diffargs
参数。(我在ui.merge
和tortoisehg.vdiff
中都指定了beyondcompare3
)到目前为止给出的所有答案都是针对Windows的。这是我为那些使用Linux的人所做的配置
差异
4路合并(v3 Pro)
-ro#
:禁用指定侧的编辑
-title#=
:在路径编辑中显示说明而不是文件名
#
字符:1=左,2=右,3=中间,4=输出
有关
bcompare
的更多选项,只需在控制台中执行bcompare-help
如果您在正确解析配置时遇到问题,请注意,任何变量或节名的任何空格都会导致配置解析错误。我一直在复制和粘贴不同的配置,并且不断出现错误。结果是在许多变量之前添加了空格,导致它无法解析。如果您使用的是Ortoisehg,您可以通过选择文件->设置将合并工具设置为无法比较,然后在Ortoisehg选项中,选择Visual Diff tool和Triple way merge tool。此设置也会影响通过命令行设置的合并。感谢您的发布,我刚刚遇到了此问题。我不使用绝对路径,因为我在windows环境路径中设置了bc3路径。您能否解释“opts.bcomp=/leftreadonly”的作用?由于开关名称声明为“left ReadOnly”,它会导致左侧为只读。由于左侧通常显示历史版本(由临时文件表示),因此尝试编辑或保存它是没有意义的。使用linux版本的BCompare时,请确保在参数前面加上--(-leftreadonly)。谢谢,这完全节省了我的时间。“Solo”的用途是什么?这将打开与2.10的3路合并:(
[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
[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
[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