【问题标题】:BeyondCompare git difftool -d closes immediately without waiting for userBeyondCompare git difftool -d 立即关闭,无需等待用户
【发布时间】:2021-08-09 20:47:23
【问题描述】:
【问题讨论】:
标签:
git
diff
beyondcompare
【解决方案1】:
很像类似的问题,我打开了 Beyond Compare,它喜欢作为单个实例运行。不过,这不是我的全部问题。我的差异工具引用了错误的可执行文件。 BCompare.exe 是主要的可执行文件,如果可以的话,它将是单个实例。 BComp.exe 是您应该用于合并工具的可执行文件。
为什么?我认为这实际上很酷。如果实例未打开(显然),则第二个打开第一个。这里有趣的部分是第二个在返回值之前等待相关的文档/任务在主程序中关闭。这意味着您可以在 git 打开的 Beyond Compare 实例中打开其他文件,当您关闭该文件时,git 仍会获得初始文件的返回码。我很想画一些精美的图画来说明,但我目前没有时间或技能去做。
如果这不能解决您的问题,您可以在命令中添加-solo。在这种情况下,它会打开另一个 UI 实例。
【解决方案2】:
您的 Beyond Compare 版本可能无法按预期工作。见讨论Scooter's forum。在命令行提示符处检查是否
-
bcomp file1 file2 等到关闭窗口。
-
bcomp dir1 dir2 等到关闭窗口。
-
bcompare -solo dir1 dir2 等到关闭窗口。
(1) 可能有效。
(2) 根据论坛的说法,预计不会等待。
(3) 根据command line reference,我发现这也不起作用,尽管它应该起作用。
如果 (3) 没有帮助,您可以编辑 mergetools/bc 文件。将此行添加到diff_cmd() 的末尾:
[ -d "$LOCAL" -o -d "$REMOTE" ] && [ -t 0 ] && read -p "Press ENTER to continue..."
文件的位置是/lib/git-core/mergetools/bc 或类似的东西。在我的 gitforwindows 中,它是c:\Program Files\Git\mingw64\libexec\git-core\mergetools\bc。