Error: Can't clobber writable file : //file name//
解决方案: 当您尝试同步文件时,perforce 期望您在工作区中的文件具有只读权限。如果一个文件没有被签出(通过
p4 edit
)但是有写权限那么它会抛出上述错误。 将文件更改为只读并再次同步 将解决问题。或者尝试删除工作区并再次获取最新版本。
“无法破坏可写文件”错误的发生是因为 Perforce 对意外覆盖(“破坏”)您在工作区中完成的工作非常谨慎。
正常的 Perforce 工作流程是
p4 sync
一个文件(将其作为只读文件放入您的工作区),然后如果您想修改它,则p4 edit
它(这使其可写)。使用 p4 edit
打开的文件将始终被 p4 sync
跳过(除非需要安全地安排 resolve
),并由 p4 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 将其文件保持只读状态,直到它们被打开进行编辑。出于某种原因,我让这个文件可写,Perforce 抱怨这个错误消息。
错误已修复,一旦我将文件设置为只读,同步就开始了:
$ chmod -w /home/Nisha/p4_workspace/foobar.txt
下面也将解决问题-
p4 sync -f file-name
我使用的是 Perforce 软件版本而不是 CLI。对我有用的是,我将整个项目权限更改为只读并关闭 Perforce 并再次打开它。然后它能够与云同步。
看来您遇到的错误可能与以下内容有关:“Can't clobber writable file 'Local File Path'。”
要解决此问题,请按照以下步骤操作:
p4 sync -f 将强制更新未打开的文件,无论它是否过时,以及是否可写。 (打开的文件仍然被跳过。)
有效