我在使用git时会遇到一些奇怪的东西。我在Windows 7机器上使用git。
我想查看一些代码更改,因此我启动了吉特(Gitk),以检查我想审查的提交中的内容。在我更改的文件列表中,我突出显示了第一个文件,并且可以看到左侧的差异。但是我无法比较插图,然后右键单击第一个文件,然后选择"外部差异"。这可以正常工作,我可以将文件分散在"超越比较"中。
但是,当我尝试使用第二个文件执行同样的操作时,它会失败。除了比较开放之外,我可以看到路径中显示了两个文件,但它们不存在。
当我去看我的文件系统时,我可以看到存在" git.gitk-tmp.7992"(文件夹引用),但它是空的,因此当然,除了比较和git difftool无法捡起它们。
当我尝试在两个分支之间进行" git difftool"时,会发生类似的事情。
我不知道为什么它不会创建那些临时文件?!?
我希望有人能对此有所了解。
谢谢
我不知道远远不相比,但是我会尝试一下:
第一次运行外部差异时,它会启动BC。第二次,它启动了一个新的BC进程,该进程找到了上一个过程,因此它将消息发送到第一个实例,然后退出。
单击GITK中的外部差异时,它会创建温度文件,运行给定命令,等待程序退出,然后删除临时文件。当您已经拥有BC的实例时,第二个几乎立即退出,因此找不到它们。
这是我能做的最好的 - 尝试挖掘BC的手册和论坛。
gracchus的答案已被发现并帮助我解决了我的问题。
在《超越比较》的情况下,用户应在gitk中使用 BComp.exe
而不是 BCompare.exe
(我正在使用)。
bcomp.exe:
这是一个Win32 GUI计划。如果从版本控制系统启动,则应正常工作。如果从控制台窗口启动,控制台(或批处理文件)将不等待。
bcompare.exe:
这是主要应用程序。不管您打开了多少个窗户,一次只能运行一个副本。如果您启动第二份副本,它将告诉现有副本以立即开始比较并退出。
我使用gitk winmerge并遇到了同样的问题。我通过在致电External diff
命令或更改Winmerge设置之前关闭Winmerge的所有实例来避免此错误:
Options > General > Uncheck the "Allow only one instance to run" checkbox.