‹ バージョン管理の設定

SimDiff を使用して Simulink と Stateflow を git + GitExtensions と統合する

Git Extensions で、差分ツールとマージツールとして ToolSelector を設定すると、Simulink モデルに対して SimDiff が開きます。

Git は分散バージョン管理システムです。主なインターフェースはコマンドラインです。Git Extensions は、そのコマンドラインの上で動くグラフィカルクライアントです。以下の手順で、Git Extensions 用に SimDiff を設定します。

このクライアントは ToolSelector を使用します。ToolSelector は弊社のユーティリティであり、入力引数(たとえばファイルの種類)から、設定されたツールを選びます。ToolSelector User Guide.pdf は ToolSelector のディレクトリにあります。デフォルトでは、そのディレクトリは C:\Program Files\EnSoft\SimDiff\utils\toolselector です。2020a.2 よりも古いバージョンの SimDiff を使用する場合、ディレクトリは C:\Program Files\EnSoft\SimDiff\utils\toolselector-20120215-1803 です。

設定

  1. gitExtensions-simdiff.zip をダウンロードします。
  2. 解凍したファイルを、お使いの ToolSelector ディレクトリ(デフォルトでは C:\Program Files\EnSoft\SimDiff\utils\toolselector)にコピーします。
  3. Git Extensions の外部の差分ツールとマージツールを設定します。
  • Git Extensions を開きます。
  • ツール、設定の順にクリックします。
  • 下の画像のように、Git Extensions の設定にある Git Config セクションに、次を入力します。

マージツール: simdiff

マージツールのパス: C:/Program Files/EnSoft/SimDiff/utils/toolselector/toolselector.exe

マージツールのコマンド:

"C:/Program Files/EnSoft/SimDiff/utils/toolselector/toolselector.exe" -profile=3way-merge $PWD $MERGED $REMOTE $BASE $LOCAL

差分ツール: simdiff

差分ツールのパス: C:/Program Files/EnSoft/SimDiff/utils/toolselector/toolselector.exe

差分ツールのコマンド:

"C:/Program Files/EnSoft/SimDiff/utils/toolselector/toolselector.exe" -profile=2way $PWD $LOCAL $REMOTE
Git Extensions の Settings にある Git Config で、Mergetool と Difftool が simdiff に設定され、profile=3way-merge と profile=2way の ToolSelector コマンドが赤枠で囲まれています。

注意

  • SimDiff と ToolSelector がデフォルトの場所にない場合は、手順 3 のパスを変更します。
  • ToolSelector が SimDiff ディレクトリ内のデフォルトの場所にない場合は、simdiff4.exe への正しい絶対パスまたは相対パスになるように simdiff-cd.bat を更新します。
  • マージの一部として 3-way 差分を使用します。3-way 差分は、2 つのバージョンの間の差分と、各変更がどのモデルから来たかを示します。3-way 差分は SimDiff のすべてのエディションに含まれています。

利用

モデルの 2 つのバージョンの差分を確認するには、Diffツールで開くをクリックし、次に目的のオプション(たとえば 前者 -> 後者)をクリックします。Git Extensions が SimDiff を開きます。画像は、ステージされていないファイルを、リポジトリ内のコピーと比較する場合を示しています。

aero_radmod.mdl に対する Git Extensions のファイルメニューで、Diffツールで開くと前者 -> 後者が強調表示されています。

Git Extensions がマージコンフリクトを検出したときも、SimDiff が起動します。以下の手順では、ブランチを、チェックアウトされているブランチにマージします。マージするブランチを右クリックし、画像に従います。

dev の Git Extensions のブランチメニューで、ブランチのマージと、それに続く dev に 1 の印が付いています。dev を master へマージする Git Extensions のブランチのマージダイアログで、マージボタンに 2 の印が付いています。aero_radmod.mdl のコンテンツのコンフリクトを示す Git Extensions の処理ウィンドウで、OK に 3 の印が付いています。コンフリクトを今解決するか尋ねる Git Extensions の Merge conflicts ダイアログで、Yes に 4 の印が付いています。

このダイアログでマージツールの開始をクリックし、SimDiff を開いて変更をマージします。

aero_radmod.mdl が選択された Git Extensions の競合の解決ダイアログで、マージツールの開始に 5 の印が付いています。SimDiff Team が aero_radmod をマージしている画面で、Actual Speed が選択され、出力とベースの Value は 400、右のモデルの Value は 500 であり、6 の印が付いています。

SimDiff を使って変更をマージします。終わったら、Simulink のウィンドウからモデルを保存し、SimDiff を閉じます。次のダイアログが表示されます。

マージコンフリクトがすべて解決されたと表示する Git Extensions の Commit ダイアログで、Yes に 7 の印が付いています。aero_radmod.mdl がステージされた Git Extensions の master へのコミットウィンドウで、コミットボタンに 8 の印が付いています。

マージしたモデルをコミットします。

別のクライアントを使用していますか。バージョン管理の設定をご覧下さい。

ご質問、または修正のご希望はありますか?

どのようなご用件ですか?