如何修复Perforce错误"不能破坏可写文件"或Perforce错误消息 - 无法写入Clobber可写文件

时间:2018-01-18 07:11:39

标签: synchronization perforce writable

错误:无法删除可写文件://文件名//

解决方案:当您尝试同步文件时,perforce希望工作区中的文件具有只读权限。但是如果文件没有签出(通过p4编辑)但具有写入权限,那么它将抛出上述错误。 将文件更改为只读并再次同步将解决此问题。或尝试删除工作区并再次获取最新版本。

3 个答案:

答案 0 :(得分:16)

“无法破坏可写”文件错误发生,因为Perforce对您在工作区中完成的意外覆盖(“破坏”)工作非常谨慎。

正常的Perforce工作流是p4 sync一个文件(以只读方式将其放入工作区),如果要修改它,则为p4 edit(这使得它可写)。 p4 edit将始终跳过已使用p4 sync打开的文件(除非安全地安排resolve,否则将被p4 submit包括在内。< / p>

如果文件未打开但可写,则表示此工作流程中出现问题,例如:您手动使文件可写以对其进行更改,如果sync更新此文件,您的更改将丢失!因此sync的默认行为是跳过更新可写文件。

有了这个解释,这里有一些选择:

  1. p4 sync -f将强制更新未打开的文件,无论文件是否过期,以及文件是否可写。 (仍会跳过打开的文件。)

  2. p4 edit将打开该文件。从那里您可以选择p4 revert(放弃更改)或p4 submit(提交更改)。

  3. 在客户端规范中将noclobber更改为clobber会删除针对clobbering可写文件的安全措施。

  4. noallwrite更改为allwrite会使所有文件默认可写,这会隐式删除noclobber安全措施。在服务器的当前版本中,它还默认启用“安全同步”选项(p4 sync -s),在更新之前强制对所有文件进行摘要计算。这比依赖写位慢,但更准确。请注意,如果您在不打开文件的情况下处理文件,则仍然存在不将其包含在submit中的风险 - p4 reconcile命令是您的朋友。

答案 1 :(得分:0)

p4 sync -f 将强制更新未打开的文件,无论该文件是否已过期,以及是否可写。 (打开的文件仍被跳过。)

有效

答案 2 :(得分:0)

我使用的是Perforce软件版本,而不是CLI。对我有用的是,我将整个项目权限更改为只读,然后关闭了Perforce,然后再次将其打开。然后它能够​​与云同步。