3.1.1 バージョン管理の概要

ここでは,バージョン付きオブジェクトによるバージョン管理の概要について説明します。

<この項の構成>
(1) バージョンの追加
(2) バージョンの順序性とカレントバージョン
(3) バージョンの指定方法
(4) バージョン付きオブジェクトとバージョンなしオブジェクトの関係

(1) バージョンの追加

バージョンを追加する場合には,チェックアウトとチェックインという操作が必要になります。

チェックアウト
チェックアウトは,新しいバージョンの追加を予約するために,最新バージョンの次に仮のバージョンを追加する操作です。チェックアウトによって,仮のバージョンのバージョンオブジェクトとして,最新バージョンのバージョンオブジェクトがコピーされて追加されます。バージョン付きオブジェクトのチェックアウトを次の図に示します。

図3-1 バージョン付きオブジェクトのチェックアウト

[図データ]
チェックアウトによって仮のバージョンが追加されたバージョン付きオブジェクトは,ほかのユーザによってチェックアウトできなくなります。チェックアウトは,チェックアウトされたバージョン付きオブジェクトがチェックインされるかまたはチェックアウトが取り消されるまで有効です。チェックアウトを取り消すと仮のバージョンは削除されます。なお,バージョン付き文書をチェックアウトすると,追加された仮のバージョンには最新バージョンのマスタレンディションのコンテンツがコピーされて登録されますが,サブレンディションのコンテンツは,仮のバージョンには登録されません。このため,必要に応じてサブレンディションのコンテンツを追加してください。レンディションについては,「3.2 レンディション管理モデル」を参照してください。
チェックイン
チェックインは,チェックアウトで追加した仮のバージョンを最新バージョンとして確定する操作です。チェックインすることでチェックアウトが解除され,バージョンが追加されます。バージョン付きオブジェクトのチェックインを次の図に示します。

図3-2 バージョン付きオブジェクトのチェックイン

[図データ]

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

バージョンには順序性があります。バージョンの順序とは,それぞれのバージョンをチェックインした順序です。なお,最新のバージョンのことをカレントバージョンといいます。

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

バージョン付きオブジェクトの個々のバージョンは,バージョン識別子によって指定できます。チェックアウトしている文書またはフォルダのバージョンを指定する場合は,チェックアウト時に取得した仮のバージョン識別子を指定します。また,バージョンのチェックアウト状態を確認して,すでにチェックアウトされている文書空間オブジェクトの仮のバージョン識別子を取得することもできます。

仮のバージョン識別子は,チェックイン後のバージョンの識別子とは異なりますので,注意してください。バージョンをチェックアウトしたあとで,チェックアウトを取り消した場合は,仮のバージョンオブジェクトおよび仮のバージョン識別子は削除されます。

(4) バージョン付きオブジェクトとバージョンなしオブジェクトの関係

バージョン付きオブジェクトでは,バージョン付きオブジェクトの1バージョンとしてバージョンなしオブジェクトを管理できます。バージョンなし文書はバージョン付き文書の1バージョンに対応し,バージョンなしフォルダはバージョン付きフォルダの1バージョンに対応します。つまり,バージョン付きオブジェクトのバージョンオブジェクトは,バージョンなしオブジェクトに対応します。バージョン付きオブジェクトとバージョンなしオブジェクトの関係を次の図に示します。

図3-3 バージョン付きオブジェクトとバージョンなしオブジェクトの関係

[図データ]

このため,バージョン付きオブジェクトのバージョンオブジェクトをバージョンなしオブジェクトとみなして,バージョンなしオブジェクトクラスの機能を使用して操作できます。また,バージョンなしオブジェクトから,自身をバージョンオブジェクトとして管理しているバージョニングオブジェクトをたどることもできます。

例えば,バージョン付き文書を全文検索する場合,実際に全文検索の対象となるコンテンツは個々のバージョンごとに存在します。このため,検索はバージョンオブジェクトであるバージョンなし文書が対象になり,検索結果としてバージョンオブジェクトのプロパティが取得できます。このとき,例えば,「全文検索で取得したバージョンなし文書を更新して,新しいバージョンとして追加したい」という場合などには,バージョンオブジェクトからバージョニングオブジェクトをたどることもできます。