2

我正在尝试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. 为什么我的权限被拒绝?

4

2 回答 2

1

除了更改文件权限之外,您还可以执行p4 sync -f. 但请注意,这可能很危险:

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

因此,请确保在执行之前提交您的工作。

于 2015-12-07T04:23:21.087 回答
0

为什么我的权限被拒绝?

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

你还期望发生什么?

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

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

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

于 2012-07-12T21:20:28.617 回答