Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 使用mercurial和beyond compare 3(bc3)作为差异工具?_Version Control_Mercurial_Diff_Beyondcompare - Fatal编程技术网

Version control 使用mercurial和beyond compare 3(bc3)作为差异工具?

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我能做

在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 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>]

我尝试了当时提出的建议,但没有一个奏效

我发现了以下作品:

  • 将beyond compare安装目录添加到yor系统
    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