0

我想在 Cygwin 中使用 IntelliJ 作为差异工具。但是在 IDEA 显示 diff 屏幕之前,创建的 tmp 文件/tmp正在被删除。

我的问题是如何防止删除 tmp 文件?git 上是否有任何配置?

编辑:

 [difftool "ideadiff"]
 cmd =  echo  \"$(cygpath -wla $LOCAL)\" \"$(cygpath -wla $REMOTE)\"

当您回显路径时,我可以看到路径,但此路径中没有任何文件。我cat 在控制台中也有完美显示内容的文件。但是从 difftool 命令退出后,我在下面看不到任何文件/tmp?为什么?

4

1 回答 1

1

我的猜想是 IDEA “分离”自身(通过分叉和退出)。您可以通过从终端启动它来轻松检查它是否为真——如果在启动后立即显示提示,那么它是真的。

对于 git,看起来您的 diff 工具已经退出,因此它会清理临时文件。

我可以看到两种可能的解决方案:

  1. 也许 IDEA 有一个防止分离的标志。例如。gvim 有这样一个标志 - -f
  2. 如果没有,那么您可以将 IDEA 包装在一个 shell 脚本中,该脚本将复制文件,然后使用您的副本启动 IDEA 本身(git 对此一无所知)。然后,您必须再次考虑何时删除它们。您可以再次将它们复制到/tmp,然后希望您的操作系统将它们清理干净。
于 2012-09-25T21:59:56.933 回答