バージョン管理システムGitを使ったリポジトリ共有の手順を説明します。

Gitは「分散バージョン管理システム」として知られています。オープンソースソフトウェアとして公開されているため、無償でダウンロードして利用できます。

ここではGitを使ったWagbyのリポジトリ管理方法を紹介します。

Gitは多くの機能を提供しています。ここではページではGitを使った場合のイメージをお伝えしますが、Gitの特徴や詳細な使い方は、書籍またはインターネット上に公開されているガイドをお読みください。
Gitの使い方に関するご質問は、ジャスミンソフトサポートでは受け付けておりません。あらかじめご了承ください。

Gitは「ローカルリポジトリ」と「リモートリポジトリ」の二段構成で運用します。開発者ははじめに「ローカルリポジトリ」で対象を管理します。これをリモートリポジトリに push することで、他の開発者と共有することができます。他の開発者がリモートリポジトリから最新の情報を取得することを pull といいます。

図1 ローカルリポジトリとリモートリポジトリの関係
ここで「リポジトリ」とは、Wagbyの設計情報ではなく、Gitが管理対象とするフォルダおよびファイルを指しています。具体的には Wagby-7.x.x/repository フォルダと Wagby-7.x.x/customize フォルダです。

Gitリポジトリ

Gitの「リモートリポジトリ」を自社で運用することもできます。具体的には Linux OS または Windows Server に Git のサーバソフトウェアをインストールします。しかしその手順は複雑であることと、インターネット上に多くのリモートリポジトリサービスが公開されていることから、本書ではすでに提供されているリモートリポジトリを活用するという方針で説明を行います。

インターネットで利用できる、代表的なGitリポジトリは次のとおりです。

サービス名特徴
GitHub 最も有名。無償利用可能だが、登録した内容はすべて公開される。プライベート利用の場合は有償となる。
Bitbucket アトラシアン社提供。後述するGitクライアント「SourceTree」も無償で提供している。無料版では5ユーザーまでリポジトリを共有できる。
CloudForge プライベートリポジトリ作成数制限なし、ユーザー数制限なし。2GBまで無料。
Backlog 日本企業による運営。無料版はない。同社が提供するチケット管理サービスと連携。
2014年11月時点の調査結果です。最新の内容については直接、各サービスをご確認ください。

以降の説明では、Bitbucketを使って説明します。

Bitbucketを利用する

Bitbucketはアトラシアン社が提供するGitリポジトリサービスです。

はじめにアカウントを作成します。

図2 Bitbucketでアカウントを作成する

空のリポジトリを作成します。ここで入力するリポジトリ名は英字を使います。プロジェクトごとに(Bitbucketの)リポジトリを用意するようにします。

図3 空のリポジトリを用意する
リポジトリ名に日本語は使用できません。

リポジトリ作成後、このタイミングでGitクライアントソフトウェア "SourceTree" も入手しておきます。これは Windows/Mac OS Xで動作する、Gitを操作するためのツールです。無償で利用できます。

以降の説明では、この SourceTree を使って操作します。

図4 SourceTreeを入手する

SourceTreeのインストール

SourceTreeをインストールする前に、Wagbyはインストール済みで、かつビルド処理も行なった状態としてください。

SourceTreeインストール後に、次の手順でリモートリポジトリに管理対象ファイル群を登録します。

  1. ローカルリポジトリを作成
  2. バージョン管理除外ファイルの指定
  3. バージョン管理対象ファイルのcommit
  4. リモートリポジトリとの関連付け
  5. リモートリポジトリへpush
図5 作業フォルダ、ローカルリポジトリ、リモートリポジトリの関係

SourceTreeをインストール後、最初にローカルリポジトリを作成します。

リポジトリタイプを "Git" とします。 保存先のパス(作業フォルダ)はWagbyインストールフォルダとします。 リポジトリに名前をつけることができます。日本語を利用できます。

図6 ローカルリポジトリを作成する

この段階では、次のようになっています。

リポジトリ状況
リモートリポジトリ
ローカルリポジトリ
作業フォルダコミットされていないファイルが多数ある。
図7 ローカルリポジトリ作成直後の状態

バージョン管理除外ファイルの指定

「リポジトリ固有の無視リスト」を指定します。

図8 「リポジトリ固有の無視リスト」の設定

テキストエディタで、.gitignoreファイルへ以下を登録します。

.classpath
.project
.settings/
export/
LICENSE.pdf
misc/
repository/branches/
repository/trunk_*/
upload_dir/
version.txt
wagbyapp/
wagbyapp.zip
wagbydesigner/
wagby-licensekey.xml

これにより、repository/trunk, customizeを管理対象とし、それ以外のすべてをバージョン管理対象外とします。

コミット前の作業 (インデックス登録)

「作業ツリーのファイル」にチェックを付けます。

git add コマンドに相当します。
図9 作業ツリーファイルをチェック

コミットボタンを押下します。

git commit コマンドに相当します。
図10 コミットボタン

コミットログを入力後、コミットします。ログはこまめに記載するようにします。

図11 コミットログを記入してコミットする

コミット後に、画面下部の「ログ」タブを選択すると状態を確認できます。 このタイミングで、ブランチmasterが作成されていることがわかります。

図12 ブランチmasterが作成されている

この段階では、次のようになっています。

リポジトリ状況
リモートリポジトリ
ローカルリポジトリ作業フォルダと同期済み。
作業フォルダすべての管理対象ファイルはコミット済み。
図13 最初のコミット直後の状態

インターネット側にある、リモートリポジトリ (Bitbucket) と接続します。リモートの設定を開始します。

図14 リモートの設定 (1)

リモートリポジトリの詳細設定を行います。

  • 「デフォルトリモート」にチェックをつける。
  • 「URL/パス」に「https://bitbucket.org/${accout}/${repository}.git」を入力する。
    • ${account} はBitbucketのアカウントを入力。
    • ${repository}はBitbucketに作成したリポジトリ名を入力。

例えばアカウントが taro_jasmine、登録したリポジトリ名が customer の場合、次のようになります。

https://bitbucket.org/taro_jasmine/customer.git
git remote add origin ${URL} というコマンドに相当します。
図15 リモートの設定 (2)

作業が完了すると、リモートに「origin」が表示されます。これで関連付けは終了です。

図16 リモート「origin」が用意される

リモートリポジトリへpushする

「プッシュ」ボタンを押下します。そのあとに表示されるダイアログで「プッシュ対象」にチェックをつけます。

git push コマンドに相当します。
図17 プッシュボタンを押下する

リモートリポジトリへ反映されたことを示す「origin/master」が表示されます。

図18 リモートリポジトリへの反映

Bitbucketのサイトでも確認できます。

図19 Bitbucketサイトでの確認

プッシュ後は、次のようになっています。

リポジトリ状況
リモートリポジトリ作業フォルダと同期済み。
ローカルリポジトリ作業フォルダと同期済み。
作業フォルダリモートリポジトリ、ローカルリポジトリいずれとも同期済み。
図20 push後の状態

同期がとれたところで、設計情報を変更してみます。 ここでは顧客モデルを新規に作成しました。

図21 顧客モデルの作成

顧客モデルの定義は repository/trunk/customer フォルダに用意されています。このフォルダをcommitします。具体的には次の操作を行います。

  1. 「作業ツリーのファイル」にチェックをつける。
  2. 「コミット」ボタンをクリック。コミットログを入力後、コミットされる。(ローカルリポジトリへの登録)
  3. 必要に応じて、リモートリポジトリへpushしてもよい。(リモートリポジトリへの登録)
図22 変更を反映させる

既存ファイルを修正した場合

SourceTree の画面で、変更内容がチェックできます。(図は氏名を必須項目とし、入力サイズを20とした場合です。)

図23 変更内容をチェックする

Gitを使った場合、次のような流れとなります。

図23 開発サイクル

別の開発者が、今回設定したリモートリポジトリを使うための手順は次のとおりです。

  1. Wagbyをインストール(ビルドも行っておく)
  2. リモートリポジトリで管理しているファイル、フォルダを削除する。
    • repository/trunk
    • customize
  3. ローカルリポジトリを作成する。バージョン管理除外ファイルの指定及びcommitは行わない。
  4. リモートリポジトリとの関連付けを行う。
  5. リモートリポジトリからpullする。このとき「マージした変更を即座にコミット」は外すこと。
  6. WagbyDesigner でリポジトリをリロードする。

ここで紹介した Git は、リモートリポジトリがインターネット上に用意されているため、開発者が遠隔地にいた場合でも共有しやすいというメリットがあります。また、カスタマイズコードを複雑に分岐して開発するという場合に効果を発揮する、さまざまな機能が提供されています。詳細は Git の書籍などをお読みください。

一方で、Git に比べると subversion や cvs の学習難易度は高くありません。はじめてバージョン管理システムを使うという場合は、subversion からはじめてもよいでしょう。subversion を導入する場合も、このドキュメントの指針を参考にすることができます。(除外ファイルの指定などは同様に行ってください。)