バージョン管理実装としてのHelixサーバ
Helixサーバは、クライアントサーバアーキテクチャを使用してバージョン管理を実装します。
- Helixサーバ は、Helix Coreサーバまたは
p4d
とも呼ばれ、バージョン管理下にあるすべてのファイルのすべてのリビジョンが格納されている共有ファイルリポジトリまたはディポを管理します。ファイルは、ディレクトリのツリー構造内に保存されます。Helixサーバには、ファイルとクライアント操作に関連付けられているデータ(ログ、ユーザ権限、メタデータ、構成値など)を追跡するためのデータベースが保管されます。 -
Helixサーバ クライアントには、ユーザ自身および同時に作業を行っている他のユーザがディポ内のファイルのチェックインとチェックアウト、衝突の解決、変更要求の追跡などを行うためのインタフェースが用意されています。
Helixサーバクライアントには、コマンドラインクライアント(
p4
)やグラフィカルユーザインタフェースクライアント((P4V
)など、さまざまなクライアントが付属しています。また、商用のIDEと生産性ソフトウェアと連携する各種のプラグインも付属しています。Helixサーバサーバは、Helixサーバクライアントの混合環境にサービスを提供できます。Helixサーバクライアントを使用して、ワークスペースと呼ばれる、コンピュータの特殊な領域を管理することができます。ディポ内のファイルは、ワークスペース内のファイルにマッピングされます。ワークスペースには、管理対象ファイルのローカルコピーが保存されます。そのため、ワークスペース内では常に管理対象ファイルで作業を行うことになります。
- ディポからファイルをチェックアウトし、ワークスペースにチェックインします。
- ファイルを修正します。
- 変更後のファイルをディポにチェックインします。
- サブミットしようとしている変更が、他のユーザによる変更と衝突している場合、その衝突を解決する必要があります。
次の図は、ディポファイル(左に表示)およびワークスペースファイル(右に表示)間のマッピングを示します。ファイルがディポからチェックアウトされるまでは、ワークスペースで読み取り専用のままです。Helixサーバがワークスペースを更新し、ディポの現在の作業を反映するようにするには、最新リビジョンのファイルを取得してワークスペースをディポに同期します。
ディポのファイルのチェックインとチェックアウトについて説明しましたが、単一ファイルをチェックインおよびチェックアウトすることをお勧めします。ディポのファイルのチェックインとチェックアウトを行うには、チェンジリストを使用します。チェンジリストには、1つ以上のファイルが含まれている必要があります。チェンジリストには、数万におよぶファイルを含めることができます。チェンジリストには番号が付いているため、ファイルの修正、追加、削除について、ディポの内容に関するすべての変更を追跡することができます。
チェンジリストは、作業内容を管理するための最も単純な方法です。チェンジリストは、Helixサーバにおける作業の最小単位でもあります。チェンジリストに複数のファイルが含まれている場合、それらすべてのファイルに対する変更がディポにサブミットされるか、いずれの変更もサブミットされないか、どちらかの動作になります。例えば、チェンジリストのサブミット中にクライアントとサーバ間のネットワーク接続で障害が発生した場合、サブミット全体が失敗します。