web-dev-qa-db-ja.com

Perforceエラー「書き込み可能なファイルを上書きできません」またはPerforceエラーメッセージ-書き込み可能なファイルを上書きできない

エラー:書き込み可能なファイルを上書きできません://ファイル名//

解決策:ファイルを同期しようとすると、perforceはワークスペース内のファイルに読み取り専用権限があることを期待します。ただし、ファイルがチェックアウトされていない場合(p4 editによる)、書き込み権限がある場合、上記のエラーがスローされます。 ファイルを読み取り専用に変更し、再度同期するは問題を解決します。または、ワークスペースを削除して、最新のリビジョンを再度取得してください。

14
Shubham Verma

「書き込み不可のファイル」エラーは、Perforceがワークスペースで行った誤った上書き(「上書き」)作業に非常に注意しているために発生します。

通常のPerforceワークフローは、ファイルをp4 sync(読み取り専用としてワークスペースに配置)してから、変更する場合はp4 editにします(これにより書き込み可能になります)。 p4 editで開かれたファイルは、p4 syncによって常にスキップされ(必要に応じてresolveを安全にスケジュールする場合を除く)、p4 submitに含まれます。

ファイルが開いていないが、書き込み可能である場合、このワークフローで何かが間違っていることを意味します。ファイルを手動で書き込み可能にして変更を加えた場合、syncがこのファイルを更新すると、変更は失われます!したがって、syncのデフォルトの動作は、書き込み可能なファイルの更新をスキップすることです。

その説明はさておき、ここにいくつかのオプションがあります:

  1. p4 sync -fは、開いていないファイルを、期限切れかどうか、書き込み可能かどうかにかかわらず強制的に更新します。 (開いているファイルはスキップされます。)

  2. p4 editはファイルを開きます。そこからオプションはp4 revert(変更を破棄する)またはp4 submit(変更を送信する)です。

  3. クライアント仕様でnoclobberclobberに変更すると、書き込み可能ファイルの破壊に対する保護が解除されます。

  4. noallwriteallwriteに変更すると、デフォルトですべてのファイルが書き込み可能になり、noclobberセーフガードが暗黙的に削除されます。サーバーの現在のバージョンでは、デフォルトで「安全な同期」オプション(p4 sync -s)も有効にし、すべてのファイルを更新する前にダイジェスト計算を強制します。これは、書き込みビットに依存するよりも遅くなりますが、はるかに正確です。ファイルを開かずに作業する場合、submitに含まれていないというリスクがあります-p4 reconcileコマンドはあなたの友人です。

16
Sam Stafford