Simulinkモデルのバージョン管理(6)

Simulinkモデルのバージョン管理(5)からの続きです。

「Simulinkモデルのバージョン管理ツールをいろいろ漁っている最中なんだけど・・・medini uniteってどうなの?」という方のために、medini uniteの使い勝手をざっくりご紹介します。いくつかツールを知っていますが、medini uniteが一番使いやすいと思います。(※あくまで個人的な感想です!)

今回も、分散型バージョン管理システムとして、MercurialベースのKiln(FogCreek社)を採用します。

しかし、今回からの話はKilnやMercurialに限った話ではありません。Subversionでもなんでも大丈夫。

ほとんどの構成管理システムは、今回の記事でやるのと同じように、コマンドラインベースでDiffやMergeツールを指定できます。ですから、どんな構成管理システムをお使いの方でも大丈夫です

Medini unite

medini uniteとは、いくつかあるSimulinkモデル用の差分表示/マージツールのうちの1つです。

インストールはとっても簡単です。「Eclipseベースのツール」と聞いていたので、別途Eclipseを用意しておく必要があるかと思いきや・・・そんな事はありませんでした。インストーラを起動して、その指示に従っているだけでインストール完了です。

インストーラ

このmedini uniteは、単体で使用することもできますし、バージョン管理システムからコマンドライン経由で起動することもできます。今回は、コマンドライン経由で起動するようにします。

そのために、Mercurial.iniに次の項目を追加します。

[extdiff]
cmd.mediniunite = C:\Program Files (x86)\ikv++ technologies ag\mediniUnite\mediniUnite.exe

なお、mediniunite = の部分は、インストールしたフォルダによって変わってきますので注意が必要です。

これで準備完了です。

モデル差分

(開発PCのみを使用する)

「今までちゃんと動いてたんだけどなー。なんで動かなくなったのかなー」

そんな時は、過去のモデルと、現在編集中のモデルがどう違うのか、確認しましょう。

特定のバージョンとの違いを見る

そのためには、TortoiseHGのHg Repository Explorerを使用します。比べたいバージョンを選択して右クリックし、Diff to local を選択します。

そして、比較したいモデルをダブルクリックします。

このとき、Select diff toolにてmediniuniteを選択するのがポイントです。

Diffが表示された (左が現在のバージョン、右が指定したバージョン)

すると、medini uniteが起動してDiffを表示してくれます。

左側に変更のあったポイントの一覧が表示されます。右側にはモデルと、プロパティ表示欄があります。これで、モデルの差分を詳しく見ることができます。

とある自動車部品メーカーの方とお話をしていた時の話です。どんなモデル差分ツールをお使いですか?とお聞きしたところ、medini unite以外のツールをお使いでした(残念!)。その方がおっしゃるには、

「テキストのDiffみたいにさ。変更点の一覧がバーっと出てさ、そいつをダブルクリックしたら変更箇所のモデルがパッと表示される。そういうツールが欲しかったんだけどねー。なかなか無いんだよねー。しょうがないから、適当なやつ買っちゃった」

medini uniteが、まさにそのツールです。でも残念ながら、差分表示ツールを検討する際、medini uniteの事はご存知なかったようです。すでに別ツールを購入されたあとなので仕方ありませんが、もっとはやくmedini uniteの事をお知らせしていたらなー、と残念です。

変更点をクリックしたら、その場所が表示される。それを短い動画にしてみました。(YouTubeなので、会社からは規制されて見られないかもわかりません)

medini unite動画

Stateflowモデル差分

(開発PCのみを使用する)

medini uniteは、Stateflowモデルの比較もできます。ためしに、ステート名を1つ変更してみました。すると・・・

変更したステート名がハイライト

変更のあるステートがハイライトされる

このように、Stateflowモデルでも問題なく差分表示する事ができます。

まとめ

Kiln(Mercurial)+medini uniteの組み合わせにより、テキストベースのDiffとまったく同じ使用感で差分を扱えることがわかりました。

次回は、マージに挑戦します。