Simulinkモデルのバージョン管理(3)
Simulinkモデルのバージョン管理(2)からの続きです。今回はテキストファイルのバージョン管理を行います。
分散型バージョン管理システムとして、MercurialベースのKilnを採用します。
やることは、次の5つです。
- リポジトリを作る
- リポジトリにファイルを保存する
- コードレビューする
- バージョンを戻したり、差分を見たりする
- 複数の人が別々に行った変更を、統合する
システム構成の確認
今回は、次の構成にします。
中央サーバー Kiln + 開発PC
基本的にリポジトリはKilnで集中管理します。
一方、開発PCには分散リポジトリを置き、こまごました変更は分散リポジトリに対して行います。ここの変更がある程度形になった時点で、中央サーバーにどかっと上げることにします。
よって、登場するマシンは次の2台です。
- 中央サーバー(Kiln)
- 開発PC
以降の作業は、中央サーバーに対して行う作業と、開発PCに対して行う作業に分かれます。
このマークは、中央サーバーに対する作業を表します
このマークは、開発PC単体でも出来る作業を表します
リポジトリを作る
(中央サーバーに、任意のマシンのWebブラウザでアクセス)
Kilnに「プロジェクト」を作り、その中に「リポジトリ」を作成します。これはWebブラウザ経由で簡単にできます。
Kilnの画面:プロジェクト「SimulinkVersionControl」の中に、いくつかのリポジトリがある
それぞれのリポジトリは独立させておくこともできますし、お互いに履歴をコピーしたりすることもできます。
リポジトリにファイルを保存する
リポジトリにファイルを保存します。Simulinkモデルを変更した場合には、かならずリポジトリに保存するくせをつけます。
作業手順としては、中央サーバーから開発PCへリポジトリを取り出します。そして取り出したリポジトリに対してあれこれ作業します。
中央サーバーからリポジトリを取り出す
&(中央サーバー、および開発PCを使用する)
リポジトリの取り出しは、開発PCから操作します。
Kiln用にカスタマイズされたTortoiseHGというツールを開発PCにインストールします。すると、次のようにするだけで済みます。
右クリックメニューで、TortoiseHGの Clone コマンドを実行
成功すると、リポジトリ内のファイルが、ごっそりと生成されます。
リポジトリ内のファイルが生成された
開発PC上のリポジトリにファイルを追加する
(開発PCのみ)
開発PCに取り出したリポジトリに対して、ファイルの追加を行います。
右クリックメニューで、TortoiseHGの Add Files コマンドを実行
TortoiseHGの Add Files コマンドを使用すると、どのファイルをリポジトリに追加するか?を指定できます。ここで指定したファイルはバージョン管理システムの管理下に置かれることになります。
追加されたファイルには、+ マークが付く
開発PC上のリポジトリに変更を保存する
(開発PCのみ)
ファイルを追加したり、ファイルを変更したりした場合は、その内容をリポジトリに保存する必要があります。
変更内容をリポジトリに保存
これもTortoiseHGのメニューから行います。
右クリックメニューで、TortoiseHGの HG Commit コマンドを実行
HG Commitを行う前は、次のような状態でした。
変更のあるファイルは ! マーク、追加されたファイルは + マークが付く
HG Commitを行うと、次のようになります。
変更のない(=最新状態である)ファイルは チェックマークが付く
中央サーバーに変更を保存する
&(中央サーバー、および開発PCを使用する)
開発PC上のリポジトリに保存したものが、ある程度の形になったところで、その内容を中央サーバーに保存しておきましょう。
TortoiseHGのSynchrinozeメニューをクリックし、現れた画面でPushをクリックします。これだけです。
TortoiseHGの、Synchronizeコマンド
Synchronize画面で、Push を実行
この作業の結果、開発PC上で行われた変更が、中央サーバーに伝達されました。Kilnの画面には、次のように履歴が現れます。
Kilnのリポジトリ情報ページに、開発PC上で行われた履歴が表示される
まとめ
今回は、リポジトリの作成から、ごくごく基本的な管理までを扱いました。
こういった作業を行うだけで、ファイルの変更履歴はすべてリポジトリ内に保存されます。その結果として、ファイルをうっかり変更してしまいもとに戻せない!といった悲劇を防ぐことができます。