SimDiff を使用して Simulink と Stateflow を Mercurial と統合する
Mercurial は、モデルの差分では extdiff を通じて SimDiff を起動し、ファイルレベルのマージコンフリクトではマージツールを通じて SimDiff を起動します。
Mercurial 用に SimDiff を設定するには、Mercurial の設定ファイルを編集してください。Windows では、ファイルは %USERPROFILE%/Mercurial.ini です。Linux では $HOME/.hgrc です。
外部差分ツールとして SimDiff を使用する
外部差分ツールを使用するには、Mercurial に同梱されている extdiff 拡張機能を使います。
SimDiff は、左のモデルパスの前に -leftModel(または -l)を、右のモデルパスの前に -rightModel(または -r)を付けることを前提としています。extdiff 拡張機能には 2 つのオプションがあります。cmd.xxx は、実行されるプログラムの名前です。opts.xxx は、プログラム名と差分を取るファイルとの間に挿入されるコマンドラインオプションの一式です。
- 書き込める場所にバッチファイルを作成してください。たとえば、次の場所です。
"C:\Users\<username>\hg-simdiff.bat"- バッチファイルに、この 1 行を追加してください。SimDiff が既定の場所にインストールされていることを前提としています。
"C:\Program Files\EnSoft\SimDiff\simdiff4.exe" -l "%1" -r "%2"mercurial.iniの simdiff コマンドがバッチファイルを指すようにしてください。
[extdiff]
cmd.simdiff = C:\Users\<username>\hg-simdiff.bat
opts.simdiff =このコマンドは hg diff と同じように動作します。
> hg simdiff model.mdlこのカスタムコマンドは、1 つのモデルファイルのリビジョンを比較します。ディレクトリを指定すると失敗します。
Simulink モデルファイルのマージツールとして SimDiff を使用する
[merge-patterns] と [merge-tools] の 2 つのセクションを変更してください。
[merge-patterns]
**.mdl = simdiff
[merge-tools]
simdiff.executable = C:\Program Files\EnSoft\SimDiff\simdiff4.exe
simdiff.args = -b $base -l $local -r $other -o $output
simdiff.binary = true
simdiff.gui = trueこれにより、SimDiff は拡張子が .mdl のファイルをマージします。マージが行われるのは、ファイルレベルでコンフリクトがある場合だけです。モデルファイルが一方のブランチでのみ変更された場合、SimDiff は起動しません。
参考ドキュメント
TortoiseHg の追加手順
既定では、TortoiseHg は Visual Diff に、設定ファイル内の最初の外部差分ツールを使用します。SimDiff は Simulink モデルファイルの差分を取り、テキストファイルの差分は取りません。テキストファイルについては、設定ファイル内で SimDiff より上に別の外部差分ツールを設定するか、TortoiseHg のグローバル設定で別のツールを指定してください。
- Windows Explorer のウィンドウ内の空白の部分を右クリックし、TortoiseHg、次に Global Settings を選択してください。
- 左側の TortoiseHg の設定グループを選択してください。
- Visual Diff Tool のドロップダウンで、SimDiff 以外のツール(kdiff3 など)を選択してください。
外部マージツールはファイル拡張子ごとに整理されているため、設定ファイルでそのように指定していれば、TortoiseHg は引き続き SimDiff をマージツールとして使用します。

別のクライアントをお使いですか。バージョン管理の設定をご参照下さい。
ご質問、または修正のご希望はありますか?
ありがとうございます。
このページについての内容を受け取りました。
