在Eclipse中使用Beyond Compare进行Subversion合并

18
我想在Eclipse中使用Beyond Compare工具。问题是,本地的差异和合并工具无法充分自定义,导致有太多的不同之处。Beyond Compare可以提供正确的自定义选项,但我无法集成该工具。我尝试了以下两种方法:
  1. 使用Eclipse插件http://beyondcvs.sourceforge.net/。但我无法配置Subversive,使其使用该插件,并且该插件不能将自身整合到Subversive的合并操作中。
  2. 尝试将Beyond Compare集成为差异查看器(请参阅Eclipse Window > Preferences > Team > SVN > Diff Viewer)。然而,在执行同步时,我所配置的差异查看器根本没有被使用。我按照http://www.scootersoftware.com/download.php?c=kb_vcs中“tortoisesvn”一节中的信息进行了操作,并根据Subversive插件所需的语法进行了更改。
有人成功地将Beyond Compare集成到Subversion的Eclipse中吗?我找到了类似的问题How to configure Beyond Compare 3 for Eclipse conflict resolution?,但对我没有用(也许是因为Subversive和Subclipse之间的差异?)。
补充: 我按照@Tom Clift的步骤进行操作(非常感谢),现在差异比较起作用了,合并要困难一些。我采取了以下步骤才最终成功:
  1. 按答案中的文档进行配置。
  2. 更改分支的内容并提交。
  3. 切换到主干。
  4. 在此开始合并操作:Team > Merge... > Tab URL > URL Field: <branch URL> and Radio button "Start from copy"
  • 按下确定时,会弹出一个对话框询问是否打开“同步视图”。
  • 同步视图显示所有更改,当我选择其中一个时,有一个菜单项“在外部比较编辑器中打开”,它会打开Beyond Compare。
  • 1个回答

    28
    使用Subversive配置Eclipse(已测试3.7(Indigo)到4.4(Luna)),将Beyond Compare作为默认的差异和合并工具的步骤(也可以适用于其他版本):
    注意:根据MattPassell's comment的评论,在OS X(和Linux?)中,路径和参数中存在空格的问题。下面的OS X配置通过避免空格来解决此问题。
    1. Preferences → Team → SVN → Diff Viewer
    2. Add...
    3. Extension or mime-type: *
    4. Diff program arguments → Program Path: enter the path for the Beyond Compare binary (with no arguments). E.g.:
      • OS X: /Users/tom/bin/bcomp (which is a symlink to /Applications/Beyond Compare.app/Contents/MacOS/bcomp to avoid spaces in the path)
      • Windows: C:\Program Files (x86)\Beyond Compare 3\BComp.exe
    5. Diff program arguments (box):
      • OS X:
        ${base} ${mine} -lefttitle=Base -righttitle=Local
      • Windows:
        "${base}" "${mine}"
        /lefttitle="Base ${base}"
        /righttitle="Local ${mine}"
        
    6. Merge program arguments → Program path: path to binary again.
    7. Merge program arguments (box):
      • OS X:
        ${theirs} ${mine} ${base} ${merged}
        -lefttitle=Incoming
        -centertitle=Base
        -righttitle=Local
        -outputtitle=Merged
      • Windows:
        "${theirs}" "${mine}" "${base}" "${merged}"
        /lefttitle="Incoming (${theirs})"
        /centertitle="Base (${base})"
        /righttitle="Local (${mine})"
        /outputtitle="Merged (${merged})"
        
    8. OK

    Eclipse 3.7 (Indigo) Subversive configuration for Beyond Compare

    我尝试配置Beyond Compare作为Subclipse的差异工具,但失败了(似乎只有外部工具配置用于合并/冲突)。


    1
    非常感谢,我会尝试一下并稍后回来。 - mliebelt
    不确定为什么合并通常不起作用,尽管我只在更新时合并冲突时使用了几次,并且我通常从Eclipse外部(TortoiseSVN /终端)进行更新。 - Tom Clift
    我正在尝试在Mac上使其工作,但路径中的空格会导致问题。我已经尝试过用引号引用它和用反斜杠转义空格,但这两种方法都不起作用。有什么建议吗? - Matt Passell
    @MattPassell 我也遇到过这个问题 - 没有测试出是Subversive还是Beyond Compare的问题。作为一种解决方法,我会在所有地方都避免使用空格。对于程序路径,我使用/Users/tom/bin/bcomp,它是一个指向应用程序的符号链接。参数值中的空格似乎也是一个问题,我认为在路径中也是如此,但没有测试过。我会在答案中添加一个部分,但我们真的应该适当地重现和提出错误 :) - Tom Clift
    @TomClift 我又做了一些调查,我认为这是Subversive的问题。好消息是,Beyond Compare 4现在在主菜单“Beyond Compare”下包括一个名为“Install Command Line Tools...”的菜单项,它创建了一个类似于您的符号链接,但位于/usr/local/bin/bcomp。哦,还有感谢您澄清在Linux/Mac下参数以“-”而不是“/”开头。 - Matt Passell
    显示剩余5条评论

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接