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