Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cygwin 为什么赢了';t P4是否为我提交打开的Emacs?_Cygwin_Perforce - Fatal编程技术网

Cygwin 为什么赢了';t P4是否为我提交打开的Emacs?

Cygwin 为什么赢了';t P4是否为我提交打开的Emacs?,cygwin,perforce,Cygwin,Perforce,这是非常奇怪的,我认为我的系统过去没有这个问题。我在使用cygwin的Windows XP系统上。我将环境变量$P4EDITOR设置为“emacs”,但当我执行p4提交时,会出现以下错误: CreateProcess:“emacs”“\t10640t25.tmp”:系统找不到指定的文件。 客户端操作失败。命令中止。 当我将它设置为vi时也会发生同样的事情(除了错误是vi而不是emacs)。当我完全取消设置$P4EDITOR时,提交信息会以某种方式在notepad++中为我打开。真的很奇怪,但我

这是非常奇怪的,我认为我的系统过去没有这个问题。我在使用cygwin的Windows XP系统上。我将环境变量$P4EDITOR设置为“emacs”,但当我执行p4提交时,会出现以下错误:

CreateProcess:“emacs”“\t10640t25.tmp”:系统找不到指定的文件。


客户端操作失败。命令中止。

当我将它设置为vi时也会发生同样的事情(除了错误是vi而不是emacs)。当我完全取消设置$P4EDITOR时,提交信息会以某种方式在notepad++中为我打开。真的很奇怪,但我无法保存并提交我在那里输入的描述


似乎问题在于P4本身,由于某种原因,它无法创建、打开或保存用于存储提交信息的tmp文件,但我无法理解这个问题。如何让p4再次在Emacs中打开东西,或者至少让我在命令行中提交东西?我被卡住了。

有一段时间,Cygwin的默认
~/.bashrc
取消设置TMP和TEMP变量,以解决修补文件从默认Windows临时目录继承不需要的权限的问题。事实证明,这会极大地混淆非Cygwin程序,该程序(有些错误)希望始终设置这些变量。看起来P4就是其中之一。所以只要编辑你的
~/.bashrc
就可以去掉有问题的行。

解决了这个问题。显然Perforce为cygwin提供了一个特殊客户。我从下载了它,并用它替换了我程序文件中的p4.exe,现在一切都运行得非常好。如果其他人有cygwin/p4问题,我强烈建议使用cygwin客户端。

Hmm,我尝试将两者都设置为/tmp和/cygdrive/c/temp(我创建该文件夹只是为了测试),但这两次我仍然出现以下错误:openforwrite:c:\temp\t9512t7.tmp:系统找不到指定的路径。有没有可能我需要为cygwin更改P4中的设置,或者什么?我不知道。我仍然尝试不设置或取消设置TMP和TEMP,并将它们保留在默认值(
localsettings\TEMP
或Windows主目录中的某个值)。没有帮助,但我想我已经解决了。看我的下一篇文章。这很有道理。进一步考虑,问题是P4将DOS路径传递给Cygwin emacs。虽然Cygwin通常支持DOS路径,但emacs自己进行了一些路径解析,并确定
C:\tmp\bla
是一个相对路径,因为它不以
/
开头。因此,它试图访问不同于P4的文件
nano
可能会起作用。