Perforce - Mac OS X上的取消链接权限被拒绝

时间:2012-07-12 21:02:34

标签: macos terminal perforce

我正在尝试p4 sync,但我收到了“无法删除可写文件”错误。所以,我删除了可写权限,但现在我收到了这个错误:

$ ls -l file.txt
-r--r--r--  1 myusername  admin   1.0K Jan 1 00:00 file.txt

$ p4 sync file.txt
//the/depot/directory/file.txt#5 - deleted as /my/local/workspace/directory/file.txt
unlink: /my/local/workspace/directory/file.txt: Permission denied

我以myusername身份登录。为什么我被拒绝许可?

2 个答案:

答案 0 :(得分:1)

您可以执行p4 sync -f,而不是更改文件权限。但要小心,这可能很危险:

  

强制同步。即使客户端工作空间已经具有指定版本的文件,Perforce也会执行同步。如果文件是可写的,则会被覆盖。   此选项不会影响打开的文件,但它会覆盖noclobber客户端选项。

因此,请确保在完成工作之前完成工作。

答案 1 :(得分:0)

  

为什么我被拒绝许可?

因为你刚拿走了自己的写权限。这意味着您不再有权写入该文件。这意味着代表您行事的p4不再具有写入文件的权限。这意味着,当代表您的p4请求写入文件的权限时,它被拒绝。这意味着p4说“权限被拒绝”。

您还期望发生什么?

p4 sync抱怨的原因是你似乎有一个你已经签出的文件(因此可能进行了更改)并且它不知道它,所以它拒绝覆盖你的努力工作。您应该手动还原文件,如果这是您想要做的。

Perforce会跟踪文件所处的状态。如果它留下了一个具有不可写访问权限的文件,并且期望它仍然处于该状态,它将在覆盖它之前尝试chmod它。但如果它认为该文件应该是可写的,它只会打开它并尝试编写它。如果p4从不调用它,那么chmod将成功的事实是无关紧要的。

无论如何,解决方案是明确还原文件,删除文件并重新拉取文件等。