コンテンツ
質問
チェックアウト実行時に『「排他オープン」状態のファイルはチェックアウトできません。』とアラートが出力されました。
原因と対応方法を教えてください。
回答
チェックアウトされているファイルを特定し、チェックアウトしているユーザが”サブミット”するか、”元に戻す”ことでアラートを解消できます。
説明
チェックアウト対象のファイル中に、以下のファイルが含まれている場合にこの「排他オープン」のアラートが出力されます
1.ファイルタイプ修飾子"+l" が設定されているファイルが、別のユーザにチェックアウトされている
2.チェックアウトを実行しようとしているユーザが対象のファイルを別のワークスペースでチェックアウトしている
そのため、アラートが出力されないようにするためには、チェックアウト状態を解除する必要があります。
例 1)ユーザ:bruno
ファイル「text1.txt」に+l修飾子が設定されており、ericがチェックアウト済みのため、brunoはチェックアウトできない
例 2)ユーザ:bruno
ファイル「text1.txt」はbrunoがeric_wsというワークスペースでチェックアウト済みのため、同ファイルをbrunoのワークスペースではチェックアウトできない
手順
チェックアウトされているファイルを漏れなく確認するには、 p4 opened コマンドを用いたコマンドラインによる確認が適しています。
以下に例を示します。
ユーザ | hela |
チェックアウト対象 | //depot/dir1/aaa.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
- ユーザ "bruno" が、ワークスペース "bruno_ws" で利用しているチェンジリスト "734" において、" aaa.c " の " リビジョン8 "を排他チェックアウトしていることが確認できます。
- " bbb.c " の " リビジョン6 "は排他チェックアウトされていないため、今回のエラーには関係しません。
解決方法
上記のコマンド結果の例をもとに以下の解決策を提案します。
ユーザ "bruno" により、"aaa.c" の "リビジョン8"をサブミットします。
もしくは、"aaa.c" の "リビジョン8"を元に戻すことで、ユーザ "hela" による当該ファイルのチェックアウトが可能となります。