Perforce Helixを用いた分散バージョン管理のための環境を構築し、利用するための手順を記します。
Helixサーバ 2017.2、GUIクライアント 2017.3を使用することを前提とします。

概要

Helix DVCSとは

Helix DVCSは、Gitと同様の開発環境を実現する機能です。

DVCS: Distributed Version Control System

既存のHelixサーバに保持しているファイルの一部、あるいはすべてをサブセットとして切り出し、個人用のサーバでバージョン管理します。

個人サーバに接続したクライアントで、チェックアウトサブミットを実行できます。

共有サーバ上で更新された情報を個人サーバに取り込んだり、個人サーバで行った変更を共有サーバに登録したりできます。

Helix DVCSがもたらすメリット

共有サーバから必要な情報(ファイル)を切り出し、個人サーバ上でバージョン管理します。
これにより、以下のメリットがもたらされます。

典型的なユースケース

Helix DVCS環境は、次のようなケースにおいて有効です。

ファイルのサブセットを切り出し

個人サーバでバージョン管理したいファイルセットを、既存のHelixサーバから切り出します。
複数箇所を選択することも可能です。
切り出したファイルセットは、個人サーバ上のストリームとして構築されます。


ここでは、ユースケース「1つの修正タスクに対して、個人的には細かい変更ごとに差分を登録しておきたいが、Helixサーバ(共有サーバ)上には細かい中間作業の記録を残したくない場合」に基づいて個人サーバを構築し、利用する際の手順をご説明します。

個人サーバの構築/利用手順

個人サーバを構築し、構築後に利用する手順となります。
作業の流れは以下の通りです。

1.切り出すファイルセットを選択します。

共有サーバに接続して操作します。
共有サーバから切り出して、個人サーバ上に保持したいディレクトリを選択して右クリックし、[クローン]を選択します。

▼共有サーバ上の「//depot/Jam/...」を切り出す図

2.個人サーバの構成を決定します。

[クローン]ダイアログで、リモートマッピングの[新規]ボタンをクリックします。
個人サーバの構成を決定するための、[リモートマッピング]フォームが表示されます。

表示されたリモートマッピングに、[ディポマッピング]フィールドの設定をします。
個人サーバのパス、リモートサーバのパス(共有サーバ)を記述します。

3.個人サーバの配置場所を指定します。

[クローン]ダイアログに戻り、[クローンディレクトリ]フィールドに配置場所を入力します。
指定したクローンディレクトリに、個人サーバでは次の情報を保持します。

パフォーマンスの観点から、ローカルのディスク領域を指定することをお勧めします。

4.個人サーバを構築します。

[クローン]ボタンをクリックして、個人サーバを構築します。

構築した個人サーバの //stream/dev/... には、共有サーバの //depot/Jam/... が切り出され、保持されます。

5.個人サーバへの接続を確認します。

  1. P4Vを起動します。
  2. P4Vの[接続をオープン]ダイアログにおいて、[個人サーバ]タブを開きます。
  3. [サーバ]フィールドにクローンディレクトリを指定します。
  4. [ユーザ]フィールドに自分のユーザ名を指定します。
  5. [OK]ボタンをクリックして、P4Vのメイン画面が立ち上がることを確認します。

通常のHelixサーバに接続するときのような、<サーバ名>:<ポート番号>という形式ではありません。

6.個人サーバ構築後の利用手順

他のユーザが変更した共有サーバ上のファイルを、個人サーバに取り込みます。(この操作をフェッチと呼びます)
取り込んだファイルを、個人サーバ上で変更(チェックアウト/サブミット)します。

個人サーバ上で変更したファイルを、共有サーバに登録します。(この操作をプッシュと呼びます)
共有サーバに登録した情報は、他のユーザから参照できるようになります。

個人サーバ構築の応用例

特定のディレクトリの除外

個人サーバ上に保持するファイルセットから、特定のディレクトリやファイルを除外することができます。

  • 個人サーバのパスの行頭にマイナス記号「-」を付けます
  • ワークスペースビューのように、指定したディレクトリやファイルを除外できます

記述例:

//stream/dev/...//depot/Jam/...
-//stream/dev/test/...//depot/Jam/test/...
-//stream/dev/....iso//depot/Jam/....iso

上記の意味は、//depot/Jam/... 配下のファイルを保持しますが、以下については、保持の対象から除外する記述例です

 //depot/Jam/test/...
 すべての .iso ファイル

保持するリビジョン数を制限

個人サーバ上に保持するファイルにおいて、保持するリビジョン数を制限することができます。

  • パスとリビジョン数を指定します。
  • ファイルタイプ修飾子 +S のように、保持するリビジョン数を制限できます。

記述例:

//stream/dev/bin/...10
//stream/dev/....zip1

上記の意味は、以下です。

//depot/Jam/bin/... については、最新の10リビジョンのみを保持します。
すべての .zip ファイルについては、最新リビジョンのみを保持します。