エラー:書き込み可能なファイルを上書きできません://ファイル名//
解決策:ファイルを同期しようとすると、perforceはワークスペース内のファイルに読み取り専用権限があることを期待します。ただし、ファイルがチェックアウトされていない場合(p4 editによる)、書き込み権限がある場合、上記のエラーがスローされます。 ファイルを読み取り専用に変更し、再度同期するは問題を解決します。または、ワークスペースを削除して、最新のリビジョンを再度取得してください。
「書き込み不可のファイル」エラーは、Perforceがワークスペースで行った誤った上書き(「上書き」)作業に非常に注意しているために発生します。
通常のPerforceワークフローは、ファイルをp4 sync
(読み取り専用としてワークスペースに配置)してから、変更する場合はp4 edit
にします(これにより書き込み可能になります)。 p4 edit
で開かれたファイルは、p4 sync
によって常にスキップされ(必要に応じてresolve
を安全にスケジュールする場合を除く)、p4 submit
に含まれます。
ファイルが開いていないが、書き込み可能である場合、このワークフローで何かが間違っていることを意味します。ファイルを手動で書き込み可能にして変更を加えた場合、sync
がこのファイルを更新すると、変更は失われます!したがって、sync
のデフォルトの動作は、書き込み可能なファイルの更新をスキップすることです。
その説明はさておき、ここにいくつかのオプションがあります:
p4 sync -f
は、開いていないファイルを、期限切れかどうか、書き込み可能かどうかにかかわらず強制的に更新します。 (開いているファイルはスキップされます。)
p4 edit
はファイルを開きます。そこからオプションはp4 revert
(変更を破棄する)またはp4 submit
(変更を送信する)です。
クライアント仕様でnoclobber
をclobber
に変更すると、書き込み可能ファイルの破壊に対する保護が解除されます。
noallwrite
をallwrite
に変更すると、デフォルトですべてのファイルが書き込み可能になり、noclobber
セーフガードが暗黙的に削除されます。サーバーの現在のバージョンでは、デフォルトで「安全な同期」オプション(p4 sync -s
)も有効にし、すべてのファイルを更新する前にダイジェスト計算を強制します。これは、書き込みビットに依存するよりも遅くなりますが、はるかに正確です。ファイルを開かずに作業する場合、submit
に含まれていないというリスクがあります-p4 reconcile
コマンドはあなたの友人です。