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