Sourcetree 不启动 Beyond compare 外部合并工具
Sourcetree does not launch Beyond compare external merge tool
突然,当我尝试从 Sourcetree 启动 "External merge tool" 时,该工具没有出现。我突然说,因为我上次尝试时它起作用了。对话永远存在:
最终我发现这个过程与视觉合并有关(不知道如何从 windows 任务管理器复制命令行):
顺便说一句,当我按下中止时,这个过程并没有消失,所以可能有人没有做功课。实际上,如果这个命令行没有六个相同的进程,我可能不会注意到它。
这些是我的设置:
我该如何解决这个问题?我需要合并项目,但我不知道该怎么做...
我发现当要合并的文件之一被删除时会发生这种情况。在那种情况下,git
打印出 sourcetree 无法处理的命令行提示。 git 进程然后永远挂起。
处理此问题的最佳方法是终止挂起的 git 进程,然后使用 mine/use 他们的手动选择。
如果无法启动Sourcetree外部合并工具,可以使用这个:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
除了 Tomáš 的回答之外,您还可以 运行 在 windows 中的命令提示符中执行以下命令,以便能够回答 git-mergetool 询问的问题的文件(或什至两个)被删除。
使用您自己的 CONFLICTED_FILE_PATH,您可能需要使用不同的路径指向您的 git-mergetool:
sh "c:\Program Files\Git\mingw64\libexec\git-core\git-mergetool" -y --tool=sourcetree -- CONFLICTED_FILE_PATH
我的问题是我选择了工具本身而不是工具的路径。这似乎是强制性的:
您还可以在“.gitconfig”文件(位于用户目录中)中看到:
之前
[difftool "sourcetree"]
cmd = '' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
cmd = '' \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
之后
[difftool "sourcetree"]
cmd = 'C:/Program Files/P4Merge/p4merge.exe' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
cmd = 'C:/Program Files/P4Merge/p4merge.exe' \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
我的问题是我仍然将合并工具列为系统默认值。将该配置也更改为 DiffMerge 似乎已经解决了它:
就我而言,这是由于无法找到 .gitconfig
文件造成的。这是一个问题,因为 .gitconfig
文件是存储差异和合并设置的地方。
这是因为它使用%HOMEDRIVE%%HOMEPATH%
来定位它(通常是C:\Users\%USERNAME%
)。就我而言,这是在一台工作机器上,它们被设置为 P:\
.
离开办公室时,我的 P:
驱动器不可用,因此无法找到我的 .gitconfig
文件,因为 P:
不存在。在我们公司的 IT 支持团队能够为我提供解决方案之前,我通过将 \localhost\C$\Users\%USERNAME%
安装为我的 P:
驱动器来解决这个问题,因为我无法更改 %HOMEDRIVE%%HOMEPATH%
的值我自己。
(如果 Sourcetree 真的给出了关于此的错误消息,而不是默默地失败,那么诊断起来会容易得多)
See the following Atlassian Knowledge base article for more info.
突然,当我尝试从 Sourcetree 启动 "External merge tool" 时,该工具没有出现。我突然说,因为我上次尝试时它起作用了。对话永远存在:
最终我发现这个过程与视觉合并有关(不知道如何从 windows 任务管理器复制命令行):
顺便说一句,当我按下中止时,这个过程并没有消失,所以可能有人没有做功课。实际上,如果这个命令行没有六个相同的进程,我可能不会注意到它。
这些是我的设置:
我该如何解决这个问题?我需要合并项目,但我不知道该怎么做...
我发现当要合并的文件之一被删除时会发生这种情况。在那种情况下,git
打印出 sourcetree 无法处理的命令行提示。 git 进程然后永远挂起。
处理此问题的最佳方法是终止挂起的 git 进程,然后使用 mine/use 他们的手动选择。
如果无法启动Sourcetree外部合并工具,可以使用这个:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
除了 Tomáš 的回答之外,您还可以 运行 在 windows 中的命令提示符中执行以下命令,以便能够回答 git-mergetool 询问的问题的文件(或什至两个)被删除。
使用您自己的 CONFLICTED_FILE_PATH,您可能需要使用不同的路径指向您的 git-mergetool:
sh "c:\Program Files\Git\mingw64\libexec\git-core\git-mergetool" -y --tool=sourcetree -- CONFLICTED_FILE_PATH
我的问题是我选择了工具本身而不是工具的路径。这似乎是强制性的:
您还可以在“.gitconfig”文件(位于用户目录中)中看到:
之前
[difftool "sourcetree"]
cmd = '' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
cmd = '' \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
之后
[difftool "sourcetree"]
cmd = 'C:/Program Files/P4Merge/p4merge.exe' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
cmd = 'C:/Program Files/P4Merge/p4merge.exe' \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
我的问题是我仍然将合并工具列为系统默认值。将该配置也更改为 DiffMerge 似乎已经解决了它:
就我而言,这是由于无法找到 .gitconfig
文件造成的。这是一个问题,因为 .gitconfig
文件是存储差异和合并设置的地方。
这是因为它使用%HOMEDRIVE%%HOMEPATH%
来定位它(通常是C:\Users\%USERNAME%
)。就我而言,这是在一台工作机器上,它们被设置为 P:\
.
离开办公室时,我的 P:
驱动器不可用,因此无法找到我的 .gitconfig
文件,因为 P:
不存在。在我们公司的 IT 支持团队能够为我提供解决方案之前,我通过将 \localhost\C$\Users\%USERNAME%
安装为我的 P:
驱动器来解决这个问题,因为我无法更改 %HOMEDRIVE%%HOMEPATH%
的值我自己。
(如果 Sourcetree 真的给出了关于此的错误消息,而不是默默地失败,那么诊断起来会容易得多)
See the following Atlassian Knowledge base article for more info.