2 Gitとの統合

この章では、EDQをGitバージョン・コントロール・システムと統合して使用する方法について説明します。

Gitを使用した統合バージョン・コントロールを構成する前に、次の点を考慮してください。

  • プロジェクトおよびグローバル・オブジェクトはファイル・システムに格納されますが、コミット、プッシュ、プル・リクエストなどのソフトウェア構成管理(SCM)操作はEDQの外部で手動で実行されます。
  • EDQシステムを新たに初期化する必要があります。Git構成は、システムを初めて起動する前に完了しておく必要があります。

    ノート:

    Gitを使用するように変換したい構成を含む既存のEDQシステムがある場合は、そのシステム上のすべてのプロジェクトをパッケージ化し、ローカル・ホームをバックアップする必要があります。その後、ローカル・ホーム内のプロジェクトおよび構成拡張またはその他の必要なファイルをGit統合システムにインポートできます。

この節の内容は以下のとおりです。

2.1 統合アーキテクチャの理解

EDQサーバーは、Gitサーバーを構成情報のストアとして認識するように構成できます。

次の図は、Gitと統合された2つのEDQインスタンスの一般的な設定を示しています。ここでは、変更の作成とテストに開発/テスト・インスタンスを使用します。テスト済の変更は、Git管理者が承認したプル・リクエストによって本番インスタンスで使用されるメイン・ブランチに昇格されます。開発インスタンスとテスト・インスタンスは、同様に分離されることがあります。たとえば、これらが両方とも同じフォークで動作する場合でも、変更はコミットされて開発からプッシュされた後にのみ、テストに移行します。


Gitにプロジェクト・データが格納されるEDQ

2.2 Gitワークスペースの準備

構成の最初の手順では、チェックアウトしたデータが格納されるワークスペース・ディレクトリを作成します。

  1. Gitワークスペースに新しい空のディレクトリを作成し、次の単一行を含む.wspropsファイルを作成します:
    systemversion=12.1.3:base

    ノート:

    プロパティを「12.1.3:base」に設定し、EDQの現在のバージョンには設定しないでください。これは、EDQ 12.2.xのすべてのバージョンで正しい値です。
  2. 新しく作成したディレクトリ内に次のサブディレクトリを作成します。
    • Data Stores

    • Hidden Reference Data

    • Images

    • Projects

    • Published Processors

    • Reference Data

  3. 各ディレクトリに空の.gitignoreファイルを作成して、ディレクトリをGitに正常にコミットできるようにします。空のディレクトリをGitにコミットすることはできないため、これを行う必要があります。ディレクトリを作成して移入するには、次のスクリプトを使用します:
    rootdirs="Data_Stores Hidden_Reference_Data Images Projects Published_Processors
              Reference_Data" 
    # Create root dirs 
    for i in $rootdirs
    do x=$(echo $i | tr '_' ' ')
       mkdir "$x"
       echo > "$x/.gitignore"
       echo created $x
    done 
    cat > .wsprops <<EOF
    systemversion=12.1.3:base
    EOF
  4. これらのディレクトリを追加してGitにコミットします。これで、リポジトリはEDQ用に正しく設定されました。

2.3 GitでのEDQの構成

Gitは、EDQのフレッシュ・インストールと統合する必要があります。EDQサーバーを初めて起動する前に、director.propertiesを編集して次の行を追加します:

sccs.workspace = file system path to root directory
sccs.vcs.type  = null

ここで、1行目のルート・ディレクトリは、「Gitワークスペースの準備」でリポジトリを作成したディレクトリです。2行目は、統合されたSubversionサポートを無効にします。

director.propertiesを編集した後、EDQサーバーを起動します。

組込みの参照データ・オブジェクトは、ルート参照データ・フォルダに作成されます。これらのオブジェクトをGitにコミットし、オリジン・サーバーにプッシュします。

2.4 EDQの使用

Gitの構成が完了したら、EDQディレクタ・クライアントを使用して、グローバル・オブジェクトとプロジェクト・オブジェクトを通常どおり作成および編集できます。オブジェクトは、「GitでのEDQの構成」sccs.workspaceプロパティによって設定されたファイル・システムの場所に格納されます。

Gitリポジトリの他のユーザーに変更を表示するには、標準のGitコマンドライン・ツールを使用して変更をコミットおよびプッシュします。たとえば:
$ cd /opt/git/repo/dev
$ git add Projects/test1
$ git commit -m 'Committing a project'
$ git push

変更がオリジン・サーバーにプッシュされた後、他のユーザーは、リポジトリをクローニングまたはプルして同じオブジェクトを操作できます。

他のユーザーが作成した変更でローカル・ワークスペースを更新するには、git pullコマンドを使用します:
git pull
remote: Counting objects: 17, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 13 (delta 3), reused 0 (delta 0)
Unpacking objects: 100% (13/13), done.
...

ローカルEDQサーバーが実行されている場合は、ワークスペースで変更がないか再スキャンします。これを行うには、jshell.jarユーティリティを使用して次のスクリプトを実行します:

$ java -jar jshell.jar scripts/sccs/scan.groovy \
          -server host:8090 -user username -pw password

実行中のEDQクライアントのプロジェクト・ブラウザには、スクリプトによって選択された変更が反映されます。

scan.groovyスクリプトは、EDQクライアントで開いているプロセスおよびジョブ・オブジェクトを更新する場合があります。ただし、これらの変更はキャンバスに反映されません。変更を表示するには、オブジェクトをクローズして再ロードする必要があります。スキャンの実行時にクライアントまたはジョブが実行されていないことを確認することをお薦めします。ブランチの切替えなど、ワークスペースの内容を変更するGit操作を実行したら、scan.groovyスクリプトを実行するか、EDQサーバーを再起動してください。