下書き: -l(排他的ロック)ファイルを移動できない時の対処
本ページは下書きです。
-l(実体は Perforce の +l ファイルタイプ)は、
同時に1人しかチェックアウトできない制約です。
そのため、対象ファイルを誰かがチェックアウト中だと、
Rename/Move が失敗する場合があります。
本手順では、事故防止を優先し、
ローカルに同一ファイルをコピーして保管したうえで、
元ファイルを削除し、移動先に追加してサブミットする方法を採用します。
まず確認すること
- 対象ファイルを右クリックし、
Opened by(または同等メニュー)で誰が開いているか確認する
- 別ユーザーが開いている場合は、その人のサブミット待ちか Revert 依頼が必要
ケース別の解決方法
ケース1: 他の人が開いている
- 開いているユーザーに連絡する
- 次のどちらかを依頼する
- すぐサブミットする
- 変更不要なら Revert する
- 相手のチェックアウトが解放された後に、ローカル退避コピーを作成する
- 元ファイルを Mark for Delete し、移動先に Mark for Add する
- 問題なければ Submit する
補足:
- エクスプローラーで先に実体を消すと復旧しづらいため、退避コピーを作ってから操作する
ケース2: 開いているユーザーが不在・放置で作業が止まる
- 管理者に対応を依頼する
- 管理者が対象の Open 状態を確認し、必要に応じて Unlock / Revert を実施
- 解放後に、退避コピー作成 -> Mark for Delete -> Mark for Add の順に実施する
注意:
- 管理者による強制 Revert は相手の未提出変更を失う可能性がある
- 実施前にチーム内で合意を取る
実際の移動手順(解放後)
- 対象ファイルをローカルで同名コピーして退避する
- P4Vで元ファイルを Mark for Delete する
- 移動先フォルダに退避コピーを置く
- 移動先ファイルを Mark for Add する
- Pending Changelist で delete と add が入っていることを確認する
- 内容差分とファイルタイプ(+l)を確認する
- 問題なければ Submit する
補足:
- 移動先追加時にファイルタイプが変わる場合があるため、提出前に必ず確認する
- 事故防止のため、作業中は退避コピーを残しておく
よくある詰まりポイント
- “already opened” 系のエラー:
- 他ユーザーのチェックアウトが残っている可能性が高い
- Mark for Delete / Mark for Add が選べない:
- ワークスペースのマッピング外を選択している可能性がある
- add 後にファイルタイプが
+l ではなくなっている:
- 提出前に Type を確認し、必要なら管理者または運用ルールに沿って修正する
- Submit できない:
- 依存ファイルが同一 Changelist に含まれていない可能性がある
参考(CLIで確認する場合)
p4 opened -a //depot/path/to/file
誰が開いているかを確認できます。
P4V だけで運用する場合は CLI の使用は必須ではありません。
関連