Error: Can't clobber writable file : //file name//
解决方案:当您尝试同步文件时,perforce 预计您在工作区中的文件将具有只读权限。如果一个文件没有被检出(by p4 edit
)但有写权限,那么它将抛出上述错误。将文件更改为只读并再次同步将解决该问题。或者尝试删除工作区并再次获取最新版本。
Error: Can't clobber writable file : //file name//
解决方案:当您尝试同步文件时,perforce 预计您在工作区中的文件将具有只读权限。如果一个文件没有被检出(by p4 edit
)但有写权限,那么它将抛出上述错误。将文件更改为只读并再次同步将解决该问题。或者尝试删除工作区并再次获取最新版本。
发生“无法破坏可写文件”错误是因为 Perforce 对于意外覆盖(“破坏”)您在工作区中完成的工作非常谨慎。
正常的 Perforce 工作流程是p4 sync
一个文件(将它作为只读放入您的工作区),然后p4 edit
如果您想修改它(这使其可写),然后再到它。已打开的文件p4 edit
将始终被跳过p4 sync
(除非需要安全地安排 a resolve
),并且将包含在 ap4 submit
中。
如果一个文件没有打开但是是可写的,这意味着在这个工作流程中出现了问题,例如,您手动将文件设为可写以对其进行更改,如果sync
更新此文件,您的更改将丢失!所以默认行为sync
是跳过更新可写文件。
有了这个解释,这里有一些选项:
p4 sync -f FILENAME
将强制更新未打开的文件,无论它是否过期,以及它是否可写。(仍会跳过打开的文件。)
p4 edit FILENAME
将打开文件。从那里您的选择是p4 revert
(放弃您的更改)或p4 submit
(提交您的更改)。
在您的客户端规范中更改noclobber
为clobber
删除了防止破坏可写文件的保护措施。
更改noallwrite
为allwrite
默认情况下使所有文件可写,这隐含地删除了noclobber
保护措施。在当前版本的服务器中,它还p4 sync -s
默认启用“安全同步”选项 ( ),在更新文件之前强制对所有文件进行摘要计算。这比依赖写入位要慢,但要准确得多。请注意,如果您在不打开文件的情况下处理文件,您仍然冒着没有将它们包含在您的submit
- 该p4 reconcile
命令是您的朋友的风险。
我使用的是 Perforce 软件版本而不是 CLI。对我有用的是,我将整个项目权限更改为只读并关闭 Perforce 并再次打开它。然后它能够与云同步。
p4 sync -f将强制更新未打开的文件,无论它是否过期,以及它是否可写。(仍会跳过打开的文件。)
有用