如何配置 Araxis Merge 以与 Visual Studio Git 一起使用?

How do I configure Araxis Merge for use with Visual Studio Git?

我现在必须将 Git 与 Visual Studio 2017 一起使用,而且似乎没有办法将 link Araxis 与 Visual Studio / [= 合并28=].

This explains how to link Visual Studio TFS with Araxis.

This explains how to link Git with Araxis.

但是如何 link Visual Studio 2017 Plug-in Selection (with Git) 到 Araxis?

在当前源代码管理插件下拉列表中,select Visual Studio Team Foundation。

您可以按照您在问题中提到的link设置araxis。

如果您仍然不能,那是因为您的源由 Git instread for Team Foundation 控制。您需要更新 git 配置,使用 araxis 作为差异并合并。您可以在您的存储库中的“.git/config”下找到您的 git 配置文件。

示例如下。

[diff]
    tool = araxis
[merge]
    tool = araxis
[mergetool "araxis"]
        path = C:/Program Files/Araxis/Araxis Merge/Compare.exe
[difftool "araxis"]
        path = C:/Program Files/Araxis/Araxis Merge/Compare.exe

在 Visual Studio 2019 年,您至少需要编辑全局 .gitconfig,如果需要,还需要编辑 project/solution .gitconfig 的本地文件。

另外,我最新版本的 araxis 将自身安装到 Program Files 以外的位置,但在 appdata 中。乌格


这是我必须在两个配置中使用的内容:

[diff]
tool = araxis
[difftool "araxis"]
path = C:\Users\{my UserName}\AppData\Local\Apps\Araxis\Araxis Merge\compare.exe

[merge]
tool = araxis
[mergetool "araxis"]
path = C:\Users\{my UserName}\AppData\Local\Apps\Araxis\Araxis Merge\compare.exe

如果有效,那么您会看到一个灰色的 araxis 并且 Use Visual Studio 是可选的,乍一看是违反直觉的(恕我直言)。

这是您在配置中看到的:

如果您是 运行 Visual Studio 2019 Enterprise(像我一样——这可能适用于使用内置 Git 的其他 Visual Studio 版本源代码管理):

  1. 导航到包含全局 .gitconfig 文件的文件夹,该文件位于: %HOMEDRIVE%%HOMEPATH%(您的用户文件夹)。
  2. 在那里找到 .gitconfig 并使用 Notepad.exe 或其他文本编辑器进行编辑。

您将要查找四个关键部分:[diff][difftool][merge][mergetool]

  • [diff]:告诉 Visual Studio Git 当你启动时启动哪个 diff 工具 将文件的一个版本与另一个版本进行比较。
  • [difftool]:指定 diff 工具的名称以及启动该工具要执行的命令行。
  • [merge]:告诉 Visual Studio Git 当您将一个文件与另一个文件合并时启动哪个合并工具。
  • [mergetool]:指定合并工具的名称以及要合并的命令行 执行以启动该工具。

我建议删除现有的 [diff][difftool][merge][mergetool] 部分并替换它们,以便您的 gitconfig 文件看起来像这样:

[user]
    name = <your name>
    email = <your email address>
[diff]
    tool = araxisdiff
[difftool "araxisdiff"]
    cmd = \"C:\Program Files\Araxis\Araxis Merge\Merge.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = araxismerge
[mergetool "araxismerge"]
    cmd = \"C:\Program Files\Araxis\Araxis Merge\Merge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\"
[difftool "vsdiffmerge"]
    cmd = \"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\vsdiffmerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
    keepBackup = false

发生的事情相当简单:[diff] 部分指定 [difftool] 条目中的哪些条目将用于文件比较; [merge] 部分指定 [mergetool] 条目中的哪些条目将用于文件合并。在上面的例子中,我指定 araxisdiff 作为我的 diff 工具和 araxismerge 作为我的合并工具。如果我想使用内置的 Visual Studio diff/merge 工具,我可以为每个更改 tool = 语句,以便它指定 vsdiffmerge