整合性を保つために、ワークスペース管理ツールのトランザクション (ブリングオーバー、取り消し、プットバック) は、対象ワークスペースをその処理が完了するまでロックします。これらのロックは、ワークスペース管理ツールのトランザクションのみに適用され、SCCS プログラムなどその他のコマンドには影響しません。ロックは、各ワークスペースの Codemgr_wsdata/locks ファイルに記録されます。ワークスペース管理ツールのトランザクションコマンドはワークスペースに対して処理を開始する前に、このファイルを参照してロックの有無を確認します。ロックには、次の 2 種類があります。
読み取りロック − あるコマンドでワークスペースの内容をチェックしているときに、そのワークスペースが変更されないようにするために使用されます。
読み取りロックは、複数のコマンドが同時に獲得することができます。読み取りロックが存在するワークスペースには、ほかのワークスペース管理コマンドで書き込みを行うことはできません。ブリングオーバートランザクションでは、親ワークスペース内のファイルを子にコピーするための準備としてそれらのファイルのチェックが行われますが、その際に読み取りロックがかけられます。また、プットバックトランザクションでは、子ワークスペースのファイルを親にコピーするための準備としてそれらのファイルのチェックが行われ、その際に読み取りロックがかけられます。
書き込みロック − あるコマンドでワークスペースに書き込みを行うときに、そのワークスペースが変更されないようにするために使用されます。
1 つのワークスペースに対しては、同時に 1 つの書き込みロックしか獲得できません。書き込みロックが存在すると、そのワークスペースに書き込みを行うことができるのはそのロックを所有するワークスペース管理コマンドだけです。また、ほかのコマンドはこのワークスペースからの読み取りロックを得ることはできません。ブリングオーバートランザクションでは、子ワークスペースに親ワークスペースからファイルをコピーする際に、子に対して書き込みロックがかけられます。同様に、プットバックトランザクションでは、親ワークスペースに子ワークスペースからファイルを戻すときに、親に対して書き込みロックがかけられます。
ワークスペース管理コマンドの実行後にロックが解除されなかった場合 (たとえば、システムクラッシュなどで)、このロックは手作業で削除してください。ロックが解除されないとほかのコマンドでそのワークスペースに対する読み取りや書き込みを行うことはできません。ワークスペース管理ツールの GUI を使用すれば、ワークスペースにその時点でかけられているロックを表示したり削除したりすることができます。また、ロックファイルを直接編集することも可能です。
ワークスペース管理ツールの GUI を使用してロックの表示や削除を行うには、ワークスペース表示区画からワークスペースアイコンを選択し、「オプション」メニューから「ワークスペース」を選択します。次に、「カテゴリ」リストボックスから「ロック」を選択します。
ロックの削除は、該当ロックが記述されている行を選択して「削除」ボタンをクリックします。最後に、「了解」ボタンを押します。