错误:无法删除可写文件://文件名//
解决方案:当您尝试同步文件时,perforce希望工作区中的文件具有只读权限。但是如果文件没有签出(通过p4编辑)但具有写入权限,那么它将抛出上述错误。 将文件更改为只读并再次同步将解决此问题。或尝试删除工作区并再次获取最新版本。
答案 0 :(得分:16)
“无法破坏可写”文件错误发生,因为Perforce对您在工作区中完成的意外覆盖(“破坏”)工作非常谨慎。
正常的Perforce工作流是p4 sync
一个文件(以只读方式将其放入工作区),如果要修改它,则为p4 edit
(这使得它可写)。 p4 edit
将始终跳过已使用p4 sync
打开的文件(除非安全地安排resolve
,否则将被p4 submit
包括在内。< / p>
如果文件未打开但可写,则表示此工作流程中出现问题,例如:您手动使文件可写以对其进行更改,如果sync
更新此文件,您的更改将丢失!因此sync
的默认行为是跳过更新可写文件。
有了这个解释,这里有一些选择:
p4 sync -f
将强制更新未打开的文件,无论文件是否过期,以及文件是否可写。 (仍会跳过打开的文件。)
p4 edit
将打开该文件。从那里您可以选择p4 revert
(放弃更改)或p4 submit
(提交更改)。
在客户端规范中将noclobber
更改为clobber
会删除针对clobbering可写文件的安全措施。
将noallwrite
更改为allwrite
会使所有文件默认可写,这会隐式删除noclobber
安全措施。在服务器的当前版本中,它还默认启用“安全同步”选项(p4 sync -s
),在更新之前强制对所有文件进行摘要计算。这比依赖写位慢,但更准确。请注意,如果您在不打开文件的情况下处理文件,则仍然存在不将其包含在submit
中的风险 - p4 reconcile
命令是您的朋友。
答案 1 :(得分:0)
p4 sync -f 将强制更新未打开的文件,无论该文件是否已过期,以及是否可写。 (打开的文件仍被跳过。)
有效
答案 2 :(得分:0)
我使用的是Perforce软件版本,而不是CLI。对我有用的是,我将整个项目权限更改为只读,然后关闭了Perforce,然后再次将其打开。然后它能够与云同步。