首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Araxis设置为MSYS git的diff / merge工具?

如何将Araxis设置为MSYS git的diff / merge工具?
EN

Stack Overflow用户
提问于 2009-05-05 15:37:37
回答 7查看 16.8K关注 0票数 14

我试图使用Araxis合并作为MSYSGit的diff / merge工具。

我在网上找到了一些资源:

  • Araxis站点上,他们提到了一种“简单”的方式,但它意味着可执行文件(araxisgitdiff.exe和araxisgitmerge.exe)不是我发行版的一部分。
  • 我还在吉特古鲁中找到了一些信息,但实际的信息是: Araxis充其量是稀疏的,我无法从中得到任何信息。
  • 最后,有一些关于一个较旧的堆叠溢流柱的信息,但是建议的方法对我不起作用。这一特定信息是针对OS的,我尽我所能将其“翻译”到Windows,但没有成功:

我创建了/bin/git-diff-driver.sh

代码语言:javascript
复制
#!/bin/sh

"/c/Program Files/Araxis/Araxis Merge/compare.exe" -title1:"$1 (repo version)" -title2:"$1 " -max "$2" "$5"

和编辑的gitconfig

代码语言:javascript
复制
[merge]
    tool = araxismerge
[mergetool "araxismerge"]
    cmd = "/c/Program Files/Araxis/Araxis Merge/compare.exe" -3 -merge -wait $LOCAL $BASE $REMOTE $MERGED
[diff]
    external = "/bin/git-diff-driver.sh"

我得到的唯一结果是:

$ git diff头^头 外部diff死亡,停在PowerEditor/src/记事本_plus.cpp。

编辑:

我还尝试使用其中一个答案所建议的名为"c:/Program Files/Araxis/Araxis Merge/compare.exe"的exe,结果是相同的。

编辑:

我已经发现,如果使用TortoiseGit,可以很容易地设置它,但是它似乎可以自行处理diff,而且TortoiseGit的任何设置都不能说明在从命令行调用diff时如何将Araxis设置为合并工具。

编辑:

因此,问题是:是否有人成功地使用Araxis与MSYSGit进行区分和合并,如果有的话,您是如何做到的?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-09-15 22:11:04

如果你想要'git‘总是使用araxis,你可以在帮助文件中使用说明,但如果你想要控制使用'git diff’,就像你通常从命令行使用'git diff‘,和’git散乱工具‘来连接Araxis GUI。

尝试在git配置中添加以下内容:

代码语言:javascript
复制
[difftool "araxis"]
    path = "/c/Program Files/Araxis/Araxis Merge/compare.exe"
    renames = true
    trustExitCode = true
[diff]
    tool = araxis
    stat = true
[mergetool "araxismergetool"]
    cmd = 'C:\\Program Files\\Araxis\\Araxis Merge\\araxisgitmerge.exe' "$REMOTE" "$BASE" "$PWD/$LOCAL" "$PWD/$MERGED"
    trustExitCode = false
[mergetool]
    keepBackup = false
[merge]
    tool = araxismergetool
    stat = true
票数 16
EN

Stack Overflow用户

发布于 2010-12-03 10:34:13

araxis的文档已经更新:http://www.araxis.com/merge/documentation-windows/integrating-with-other-applications#Git

我可以在没有任何修改的情况下使用这里显示的配置。

票数 6
EN

Stack Overflow用户

发布于 2009-05-05 17:55:32

我认为你需要在你的.gitconfig中更小心地逃避。

不幸的是,由于扩展和计算配置变量的方式,您的字符串需要是一个有效的shell命令,然后是“git”转义。

试着做这样的事情:

代码语言:javascript
复制
[mergetool "araxismerge"]
    cmd = \"/c/Program Files/Araxis/Araxis Merge/compare.exe\" -3 -merge -wait \"$LOCAL\" \"$BASE\" \"$REMOTE\" \"$MERGED\"

是的,不是很漂亮,我知道。这是直接使用git config实际上更容易的情况之一。

代码语言:javascript
复制
git config --global mergetool.araxismerge.cmd '"/c/Program Files/Araxis/Araxis Merge/compare.exe" -3 -merge -wait "$LOCAL" "$BASE" "$REMOTE" "$MERGED"'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/825478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档