Sun WorkShop TeamWare ユーザーズガイド

ブリングオーバーまたはプットバックの取り消し

ワークスペースで最後に実行されたブリングオーバーあるいはプットバックトランザクションは、取り消しトランザクションを使用して取り消すことができます。取り消しは、宛先ワークスペース側 (ファイルが変更された側のワークスペース) で行います。これらのトランザクションは、次に該当ワークスペースでトランザクションが実行されるまで、何回でも取り消すことができます。ただし、取り消すことができるのは、最後に実行されたブリングオーバーまたはプットバックのトランザクションだけです。

プットバックまたはブリングオーバートランザクションでファイルが更新されるか、衝突が検出された場合、取り消しトランザクションによってそのファイルは元の状態に戻ります。ファイルが新しい (つまり、ブリングオーバーまたはプットバックトランザクションによって作成されたものである) 場合、そのファイルは削除されます。

取り消しトランザクションを実行するには:

  1. トランザクションの取り消しを行うワークスペースを指定する。

    ワークスペース表示区画でワークスペースアイコンを選択してから、取り消しのトランザクションウィンドウを開いた場合、「ワークスペースディレクトリ」フィールドに自動的にそのワークスペースの名前が挿入されます。このフィールドには、いつでもユーザーが別のパス名を入力したり、変更を加えることができます。

  2. 「取消し」ボタンをクリックして、トランザクションを実行する。


    注 -

    「トランザクション」ウィンドウで「バックアップしない」チェックボックスを選択していた場合、トランザクションを取り消すことはできません。


ワークスペースのロック

指定ワークスペースでファイルが処理されている間、ワークスペースには書き込みロックが存在します。書き込みロックは、同時に 1 つしか存在できません。この間、ほかのワークスペース管理コマンドがワークスペースに書き込みを行うことはできません。ロック状況は、各ワークスペースにある Codemgr_wsdata/locks ファイルで管理されています。ワークスペース管理ツールは、この書き込みロックを得ることができないと、エラーメッセージを出力して処理を中止します。

履歴ファイル

取り消しトランザクションに関する情報は、Codemgr_wsdata/history ファイルに記録されます。この情報によって、ワークスペースにおいてファイルがどのように変更されてきたかを知ることができます。このファイルに関する詳細は、「ワークスペースに関するコマンド履歴の表示」を参照してください。

取り消しトランザクションの動作原理

ブリングオーバーとプットバックトランザクションは、宛先ワークスペース (ブリングオーバーの場合は子、プットバックの場合は親) でファイルを更新あるいは作成する際に、オリジナルのファイルのバックアップコピーを作成してから、実際の変更を行います。既存のファイルはすべて、宛先ワークスペースの Codemgr_wsdata/backup/files ディレクトリにコピーされ、新たに作成されたファイルの名前がすべて、Codemgr_wsdata/backup/new というファイルに記録されます。

ワークスペースをブリングオーバーとプットバックトランザクション実行前の状態に戻すことにした場合、取り消しトランザクションは次のようにして元の状態を復元します。

Codemgr_wsdata/backup ディレクトリに記録されているデータは、次にブリングオーバーとプットバックのトランザクションを実行するとすべて削除されます。

Graphic
注 -

ワークスペース管理ツールによって転送されるファイルはすべて、SCCS の制御下にあります。通常、ブリングオーバーおよびプットバックトランザクションでは SCCS 履歴ファイルだけがバックアップされます。その後、ファイルを復元する場合、取り消しトランザクションは履歴ファイルから適切な g-ファイル (最新のデルタ) を抽出します。ただし、子ワークスペース内のファイルがブリングオーバートランザクション中にチェックアウトされた場合には、g-ファイルと SCCS 履歴ファイルの両方がバックアップされ、進行中の作業内容が保持されます (ブリングオーバートランザクション中のファイルのチェックアウトは可能ですが、プットバックトランザクション中にはできません。プットバック処理中のファイルをチェックアウトすると、エラーになります)。つまり、g-ファイルと SCCS 履歴ファイルは Codemgr_wsdate/backup/files ディレクトリにコピーされ、取り消しトランザクションによって復元されます。