为什么 P4 不为我提交 Open Emacs?
这很奇怪,我认为我的系统以前没有出现过这个问题。我在 Windows XP 系统上使用 cygwin。我将环境变量 $P4EDITOR 设置为“emacs”,但是当我执行 p4 提交时,出现错误:
CreateProcess: "emacs" ".\t10640t25.tmp": 系统找不到指定的文件。
客户端操作失败。命令中止。
当我将其设置为 vi 时,也会发生同样的情况(除了错误是使用 vi 而不是 emacs 时发生的)。当我完全取消设置 $P4EDITOR 时,提交信息最终会在记事本++中为我打开。真的很奇怪,但我实际上无法保存并提交我在那里输入的描述。
问题似乎出在 P4 本身上,由于某种原因,它无法创建、打开或保存用于存储提交信息的 tmp 文件,但这个问题是什么超出了我的范围。有什么想法如何让 p4 再次在 Emacs 中打开内容,或者至少让我以某种方式在命令行中提交内容吗?我很困惑。
This is very odd, and I think my system didn't use to have this problem. I'm on a Windows XP system using cygwin. I have the environment variable $P4EDITOR set to "emacs", but when I do a p4 submit, I get the error:
CreateProcess: "emacs" ".\t10640t25.tmp": The system cannot find the file specified.
Client side operation(s) failed. Command aborted.
Same thing happens when I set it to vi (except the error is with vi instead of emacs). When I unset $P4EDITOR entirely, the submit info somehow winds up opening up in notepad++ for me. Really strange, but I can't actually save and submit the description I put in there.
It seems like the problem is with P4 itself where for some reason it can't create, or open, or save the tmp file it uses to store submission information, but what that problem is is beyond me. Any ideas how to get p4 to open stuff in Emacs again, or at least to let me submit stuff somehow in command line? I'm pretty stuck.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
想通了这一点。显然 Perforce 有一个特殊的 cygwin 客户端。我从 http://www.perforce.com/perforce/downloads/otherlist.html 下载它 并用它替换了我的程序文件中的 p4.exe,现在一切都运行良好。如果其他人有 cygwin/p4 问题,我强烈建议获取 cygwin 客户端。
Figured this out. Apparently Perforce has a special client for cygwin. I downloaded it from http://www.perforce.com/perforce/downloads/otherlist.html and replaced the p4.exe in my program files with it, and everything now works wonderfully. If anyone else has cygwin/p4 issues, I strongly recommend getting the cygwin client.
有一段时间,Cygwin 的默认
~/.bashrc
取消设置 TMP 和 TEMP 变量,以解决修补文件从默认 Windows 临时目录继承不需要的权限的问题。事实证明,这可能会极大地迷惑非 Cygwin 程序(有些错误地)期望这些变量始终被设置。看来P4就是其中之一。因此,只需编辑~/.bashrc
即可删除有问题的行。For a while, Cygwin's default
~/.bashrc
unset the TMP and TEMP variables to address an issue with patched files inheriting unwanted permissions from the default Windows temporary directory. Turned out that that can greatly confuse non-Cygwin program that (somewhat wrongly) expect those variables to always be set. Looks like P4 is one of them. So just edit your~/.bashrc
to take out the problematic line.