2011-03-16 30 views
2

這很奇怪,我認爲我的系統沒有用這個問題。我在使用cygwin的Windows XP系統上。我有環境變量$ P4EDITOR設置爲「emacs的」,但是當我做了P4提交,我得到的錯誤:當我將它設置爲VI(除非錯誤是爲什麼P4不會爲我提交打開Emacs?

CreateProcess: "emacs" ".\t10640t25.tmp": The system cannot find the file specified.

Client side operation(s) failed. Command aborted.

同樣的事情發生vi而不是emacs)。當我完全取消$ P4EDITOR時,提交信息會以某種方式在記事本++中爲我打開。真的很奇怪,但我實際上無法保存並提交我放在那裏的描述。

似乎問題出在P4本身,因爲某些原因它不能創建,打開或保存用來存儲提交信息的tmp文件,但是那個問題超出了我的範圍。任何想法如何讓p4再次在Emacs中打開東西,或者至少讓我以某種方式在命令行中提交東西?我很困難。

回答

4

想通了。顯然Perforce有一個cygwin的特殊客戶端。我從http://www.perforce.com/perforce/downloads/otherlist.html下載它,並用它替換了我的程序文件中的p4.exe,現在所有的東西都可以很好地工作。如果其他人有cygwin/p4的問題,我強烈建議獲取cygwin客戶端。

+0

這很有道理。進一步思考,問題是P4將DOS路徑傳遞給Cygwin emacs。雖然Cygwin通常支持DOS路徑,但emacs做了一些自己的路徑解析,並決定'C:\ tmp \ bla'是一個相對路徑,因爲它不以'/'開頭。因此它試圖從P4訪問不同的文件。 '納米'可能已經奏效。 – ak2

0

有一段時間,Cygwin的默認~/.bashrc取消了TMP和TEMP變量,以解決從默認的Windows臨時目錄繼承不需要的權限的補丁文件問題。原來,這可能會非常混淆非Cygwin程序,(有點錯誤地)期望這些變量總是被設置。看起來P4是其中之一。所以只需編輯你的~/.bashrc來取出問題線。

+0

嗯,我都嘗試設置到/ tmp和/ cygdrive/C/TEMP(我創建的文件夾只是爲了測試),但是兩次我還是得到了沿線的錯誤: 開寫:C: \ temp \ t9512t7.tmp:系統找不到指定的路徑。 是否可能需要在P4中更改cygwin的設置,或者什麼? – Eli

+0

我不知道。我仍然嘗試不設置或取消設置TMP和TEMP,並將它們保留默認值('Local Settings \ Temp'或某些這樣的設置在您的Windows主目錄中)。 – ak2

+0

沒有幫助,但我想我只是想通了。看我的下一篇文章。 – Eli