我正在尝试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
身份登录。为什么我被拒绝许可?
答案 0 :(得分:1)
您可以执行p4 sync -f
,而不是更改文件权限。但要小心,这可能很危险:
强制同步。即使客户端工作空间已经具有指定版本的文件,Perforce也会执行同步。如果文件是可写的,则会被覆盖。 此选项不会影响打开的文件,但它会覆盖noclobber客户端选项。
因此,请确保在完成工作之前完成工作。
答案 1 :(得分:0)
为什么我被拒绝许可?
因为你刚拿走了自己的写权限。这意味着您不再有权写入该文件。这意味着代表您行事的p4不再具有写入文件的权限。这意味着,当代表您的p4请求写入文件的权限时,它被拒绝。这意味着p4说“权限被拒绝”。
您还期望发生什么?
p4 sync
抱怨的原因是你似乎有一个你已经签出的文件(因此可能进行了更改)并且它不知道它,所以它拒绝覆盖你的努力工作。您应该手动还原文件,如果这是您想要做的。
Perforce会跟踪文件所处的状态。如果它留下了一个具有不可写访问权限的文件,并且期望它仍然处于该状态,它将在覆盖它之前尝试chmod它。但如果它认为该文件应该是可写的,它只会打开它并尝试编写它。如果p4从不调用它,那么chmod将成功的事实是无关紧要的。
无论如何,解决方案是明确还原文件,删除文件并重新拉取文件等。