プットバックのトランザクションウィンドウは、次の方法で開くことができます。
親ワークスペースのアイコンの上に子ワークスペースアイコンをドラッグ&ドロップします。
ワークスペースアイコンを選択し、「トランザクション」⇒「プットバック」を選択します。
ワークスペースアイコンを選択し、ワークスペース表示区画のポップアップメニューから「プットバック」を選択します。
トランザクションダイアログがすでに開いている場合には、「カテゴリ」リストボックスから「プットバック」を選択します。
プットバックトランザクションを実行するには:
子ワークスペースを指定する。
ワークスペース表示区画でワークスペースアイコンを選択してからプットバックのトランザクションウィンドウを開くと、その名前が「子ワークスペースディレクトリ」フィールドに自動的に挿入されます。このフィールドは、ユーザーが変更することもできます。
親ワークスペースを指定する。
手順 1 で指定された子の親ワークスペースの名前が「親ワークスペースディレクトリ」フィールドに挿入されます。親ワークスペース名は、ワークスペース管理ツールのメタデータファイル Codemgr_wsdata/parent を参照して挿入されます。
「親ワークスペースディレクトリ」フィールドに新しい親のパス名を指定すると、1 回限りのプットバックトランザクションで、子ワークスペースの親を変更できます。この場合、親の変更はそのトランザクションについてのみ有効になります。ワークスペースの親を完全に変更したい場合には、「ワークスペース管理」ウィンドウで「編集」⇒「親の変更」を選択するか、該当する子ワークスペースのアイコンを新しい親のアイコン上にドラッグします。ワークスペースの親の変更についての詳細は、「ワークスペースの親子関係の変更」を参照してください。
ワークスペース表示区画でアイコンが選択されていない状態で「トランザクション」⇒「ブリングオーバー」⇒「更新」を選択すると、フィールドに情報の入っていない「トランザクション」ウィンドウが開きます。「子ワークスペースディレクトリ」に子ワークスペースの名前をユーザーが直接入力し、Return キーを押すと、自動的に「親ワークスペースディレクトリ」フィールドが更新されます。
親ワークスペースおよび子ワークスペースはファイルシステムを使用してアクセスできる必要があります。これらのアクセスには、オートマウンタまたは NFS マウントのいずれかを使用します。
ワークスペースへの (ユーザーの) アクセス可能性は、各ワークスペースの Codemgr_wsdata/access_control ファイルによって制御されます。“ワークスペースへのブリングオーバー”および“ワークスペースからのブリングオーバー”のアクセス設定が適切であることを確認してください。詳細は、「ワークスペースへのアクセス制御」を参照してください。
ファイルリスト区画でディレクトリ/ファイルのリストを作成する。
親ワークスペースの内容は、すべてを子にコピーすることも、その一部のみをコピーすることもできます。ファイルリスト区画に、コピーするディレクトリとファイルを指定します。ディレクトリおよびファイルの指定方法については、「トランザクションの対象となるディレクトリとファイルの指定」を参照してください。
独自の FLP を使用してファイルリストを作成する場合は、FLP もファイルリスト区画で指定してください。
ディレクトリ名およびファイル名として指定した相対パス名は、ワークスペース階層の最上位 (ルート) ディレクトリに対する相対パス (親ワークスペースと子ワークスペースで同じと仮定) として解釈されることに注意してください。絶対パス名で指定したファイル名は、親ワークスペースと子ワークスペースのいずれかにあるファイルを指し、該当するファイルが存在しない場合、そのファイル名は無視されます。
オプションを選択する。
「プレビュー」チェックボックスを選択すると、トランザクションの実行結果のプレビューを表示できます。このオプションを選択した状態でプットバックトランザクションを実行すると、ファイルのコピーは行われませんが、「トランザクション出力」ウィンドウに出力メッセージが表示され、実際にコピーが行われた場合の結果を確認できます。
「詳細メッセージ」チェックボックスを選択すると、「トランザクション出力」ウィンドウに、より詳細なメッセージを表示させることができます。デフォルトの設定では、作成および更新されたファイル、および衝突の存在するファイルそれぞれについてメッセージが表示されます。このオプションを選択した状態でプットバックトランザクションを実行すると、コピーされなかったファイルを含め、すべてのファイルに関するメッセージが表示されます。なお、このオプションと「メッセージ抑制」オプションを同時に指定した場合には、「メッセージ抑制」オプションが使用されます。
「メッセージ抑制」チェックボックスを選択すると、「トランザクション出力」ウィンドウにステータスメッセージを出力しないようにすることができます。
「SCCS get 抑制」チェックボックスを選択すると、プットバックトランザクションの実行時に SCCS get コマンドが自動的に実行されないようにすることができます。通常は、プットバックの後、SCCS 履歴から g-ファイルが抽出されます。このオプションを指定すると、ファイルの転送速度が向上しますが後でユーザー自身で get を実行しなければなりません。
「自動ブリングオーバー」チェックボックスを選択すると、プットバックトランザクションが中止された場合に、自動的に更新ブリングオーバートランザクションを実行して、子のファイルを更新できます。
「バックアップしない」チェックボックスを選択すると、既存のファイルをプットバック先ワークスペースの Codemgr_wsdata/backup/files ディレクトリにコピーする処理を省略できます。このオプションを使用すると、子ワークスペースが使用するディスク領域が減りパフォーマンスが速くなりますが、処理を取り消して元に戻すことはできなくなります。
コメントを入力する。
実行するプットバックトランザクションに関するコメントを入力します。このコメントは、親ワークスペース内の Codemgr_wsdata/history ファイルに書き込まれるトランザクションログと一緒に記録されます。コメントの長さは 8K バイト以内にしてください。
「プットバック」ボタンをクリックして、トランザクションを実行する。
取り消しトランザクションを使用すると、プットバックトランザクション中に実行された処理を元に戻すことができます。詳細は、「ブリングオーバーまたはプットバックの取り消し」を参照してください。
ワークスペース管理ツールは、プットバックトランザクションの実行時に、親ワークスペースで SCCS からチェックアウトされたファイルを検出すると、それらのファイルの整合性を保つために表 7-4 のような処置を行います。
表 7-4 プットバックにおけるチェックアウトファイルの状態と処置
トランザクションの実行中は、出力ウィンドウにステータス情報が表示されます。ファイルの処理に合わせてメッセージが表示され、実行が完了するとトランザクション全体の要約情報が表示されます。
ワークスペース管理ツールが親ワークスペースのファイルの読み取りおよび検査を行なっているときには、そのワークスペースに対して読み取りロックがかかります。一方、子ワークスペース内のファイルを操作している場合には、書き込みロックがかかります。
複数のワークスペース管理コマンドが同時にワークスペース内のファイルの読み取りを行うと、複数の読み取りロックが発生します。読み取りロックが 1 つでも存在すると、そのワークスペースに対してほかのコマンドを実行して書き込みを行うことはできません。書き込みロックは一度に 1 つしか存在できず、書き込みロックが存在する間、ほかのワークスペース管理コマンドでそのワークスペースに書き込みを行うことはできません。ロックの状態は、各ワークスペース内の Codemgr_wsdata/locks ファイルで管理されています。
ロックされているワークスペースに対してファイルをプットバックしようとすると、そのロックを所有しているユーザーの名前、ユーザーが実行しているコマンド、およびロックが発生した時刻を示すメッセージが表示されます。
親ワークスペース: /user/demohost/ws/man_pages 子ワークスペース: /home/demohost/ws/man_pages_yasue putback: 書き込みロックが取得できません。ワークスペース "/home/demohost/ws/man_pages_yasue" に以下のロックが存在しています: ユーザ jack は bringover コマンドを実行中です (pid 20291) マシン holiday で 9 分 (エラー 2021)
プットバックトランザクションに関する情報は、Codemgr_wsdata/history ファイルに記録されます。この情報は、ワークスペースにおいてファイルがどのように変更されてきたかを知る上で重要です。このファイルに関する詳細は、「ワークスペースに関するコマンド履歴の表示」を参照してください。