コンテンツ
質問
チェックアウト実行時に『「排他オープン」状態のファイルはチェックアウトできません。』とアラートが出力されました。
原因と対応方法を教えてください。
回答
チェックアウト対象のファイルが排他チェックアウト指定されている、もしくは、自身の別のワークスペースでチェックアウトされている可能性があります。
対象ファイルを特定し、チェックアウト済みユーザがファイルを”サブミット”するか、"元に戻す"ことでアラートを解消できます。
説明
チェックアウト対象のファイル中に、以下のファイルが含まれている場合にこの「排他オープン」のアラートが出力されます
1.ファイルタイプ修飾子"+l" が設定されているファイルが、別のユーザにチェックアウトされている
2.チェックアウトを実行しようとしているユーザが対象のファイルを別のワークスペースでチェックアウトしている
アラートが出力されないようにするためには、該当ファイルのチェックアウト状態を解除する必要があります。
例 1)ユーザ:bruno
・ファイル「text1.txt」に"+l" 修飾子が設定されている
・ericがチェックアウト済みなのでチェックアウトできない
例 2)ユーザ:bruno
・ファイル「text1.txt」はbrunoがeric_wsというワークスペースでチェックアウト済み
・同ファイルをbrunoのワークスペースではチェックアウトできない
手順
1.チェックアウトされているファイルを特定します。
P4Vで確認することもできますが、チェックアウトされているファイルを漏れなく確認するには、"p4 opened"コマンドによる確認が適しています。
例)ユーザ:hela が以下の4ファイルをチェックアウトしようとしている場合
//depot/dir1/aaa.c //depot/dir1/bbb.c
//depot/dir1/ccc.c //depot/dir1/ddd.c
p4 opened -a //depot/dir1/....c
//depot/dir1/aaa.c#8 - edit change 734 (unicode+lS) by bruno@bruno_ws *exclusive* //depot/dir1/bbb.c#6 - edit change 734 (unicode+S) by bruno@bruno_ws
2. 特定されたファイルに対して、以下のいずれかを実行します
① ユーザ :brunoにより、「aaa.cのリビジョン8」を "サブミット"する
② ユーザ :brunoにより、「aaa.cのリビジョン8」を "元に戻す"
③ 管理者権限で「aaa.cのリビジョン8」を "元に戻す"
→続く「参考」をご覧ください
参考
チェックアウトしたユーザが不在の場合、管理者権限でチェックアウトを解除することもできます。
ファイルの変更を破棄しても問題無い場合は、"p4 revert"コマンドを実行します。
p4 revert -C bruno_ws //depot/dir1/aaa.c
//depot/dir1/aaa.c#8 - was edit, cleared