3.3.2 バージョンの管理方法

ここでは,文書またはコンテナをバージョン管理機能を使用して管理する方法について説明します。この説明中の文書とは,バージョン付き文書です。コンテナは,バージョン付き構成管理コンテナです。

<この項の構成>
(1) バージョンの追加
(2) バージョンの順序性とカレントバージョン
(3) バージョンの指定方法

(1) バージョンの追加

文書やコンテナを更新する場合に,バージョンを追加して新しいバージョンを作成する時,チェックアウトとチェックインという操作をします。

チェックアウトおよびチェックインについて説明します。

チェックアウト
文書やコンテナのバージョンを追加するために,次バージョンの追加を予約して,最新バージョンの文書またはコンテナのコピーを要求することです。バージョンのチェックアウトは,VersionCheckOutメソッドによって実行します。
なお,チェックアウトした段階でバージョンの追加は完了していません。したがって,メソッドによってバージョンの一覧を取得した場合,仮のバージョンに関する情報は取得できません。
チェックアウトをしている状態のDMAオブジェクトの構成を次の図に示します。

図3-17 チェックアウトをしている状態のDMAオブジェクトの構成

[図データ]
Reservationオブジェクトは,新しいバージョンを作成する権利をVersionSeriesオブジェクトに予約するDMAオブジェクトです。チェックインすると,VersionDescriptionオブジェクトに置き換わります。
チェックイン
バージョンの追加を確定することです。バージョンのチェックインは,VersionCheckInメソッドによって実行します。
チェックインをした状態のDMAオブジェクトの構成を次の図に示します。

図3-18 チェックインをした状態のDMAオブジェクトの構成

[図データ]

チェックアウトされたバージョンを参照,操作する場合,仮のバージョン識別子を指定します。仮のバージョン識別子は,チェックアウトを実行した時に取得でき,チェックインを実行した時に無効になります。仮のバージョン識別子は,チェックイン後のバージョンの識別子とは異なりますので,ご注意ください。

バージョンをチェックアウトしたあとで,チェックアウトを取り消す場合は,VersionRevokeメソッドをコールします。このメソッドによって,仮のバージョンおよび仮のバージョン識別子は破棄されます。

(2) バージョンの順序性とカレントバージョン

バージョンには順序があります。バージョンの順序とは,それぞれのバージョンをチェックインした順序です。バージョンの順序は,バージョン管理できるオブジェクトの構成要素である,DMAオブジェクトのVersionSeriesオブジェクトが保持しています。なお,最新のバージョンのことを,カレントバージョンといいます。

バージョンの順序は,GetVersionListメソッドまたはGetVersionListAndLockメソッドによって取得できます。引数の指定によって,新しいバージョンから取得したり,古いバージョンから取得したりできます。

バージョンの順序性についての注意事項
DMAが規定しているインターフェース(DMAインターフェース)を使用してバージョンを追加したオブジェクトに対しては,バージョンの順序性は保証されません。したがって,このオブジェクトに対して,カレントバージョンを指定した操作などはできません。ただし,このオブジェクトにクラスライブラリのメソッドによって再度バージョンを追加すれば,そのバージョンをカレントバージョンとして扱えます。

(3) バージョンの指定方法

特定のバージョンに対応する文書またはコンテナを操作する場合は,メソッドの引数としてバージョン識別子を指定します。バージョン識別子は,GetVersionListメソッドまたはGetVersionListAndLockメソッドを使用して取得します。

チェックアウトしている文書またはコンテナのバージョンを指定する場合は,チェックアウト時に取得した仮のバージョン識別子を指定します。仮のバージョン識別子は,VersionCheckOutメソッドをコールした時に取得できます。また,すでにチェックアウトされているオブジェクトの仮のバージョン識別子を,GetReservationStatusメソッドまたはGetReservationStatusAndLockメソッドによって,バージョンのチェックアウト状態を確認して取得することもできます。

バージョンを指定して文書やコンテナを操作できるメソッド(引数でバージョン識別子を指定できるメソッド)で,バージョン識別子にNULLを指定した場合,メソッドは最新のバージョンに対して処理を実行します。