SimDiff 取扱説明書

目次

はじめに

紹介
EnSoftサポートの要請
用語

インストールと設定

インストール
MATLAB/Simulinkのインストール設定
ウィンドウ位置の変更

SimDiffの起動

モデル選択ウィンドウ
3点間マージ vs 2点間マージ
MATLABからSimDiffを使用

SimDiffの使用

ツールバーボタン
情報パネル
属性変更の視覚化
マージ
マージアクション
コンフリクトと依存性
マージアクションとフィルター
Simulink/Stateflowにおける変更表示
監査変更
変更レポートの作成
ハイライト表示モデルのエクスポート
変更のフィルター
サブシステムの比較
Workspace 変数の比較
ライブラリリンクの解除
マージアクションのアンドゥ
異なるMATLABで保存されたモデルの比較
一時的モデルコピー

Stateflowのサポート

自動化

バッチモードで SimDiff を使用する
SimDiffに引数を渡す
SimDiff 終了コード

リポジトリの統合

リポジトリ クライアントを統合する場合の基本操作

法定通知


はじめに

紹介

SimDiffは、Simulinkモデルのチーム開発における先導的な差分及びマージ解決手段です。

SimDiffのマージは、他のユーザーにより実行された変更を1つのSimulinkに統合する最も容易かつ確実な手段です。SimDiffには、マージモードと比較モードの2種類のオペレーションモードがあります。また、Basic、Professional、Teamの3種類のエディションがあります。下の表には、各エディションの特徴が列挙されています。

SimDiff Team SimDiff Professional SimDiff Basic
差分 check mark check mark check mark
レポート check mark check mark
マージ check mark

弊社では、SimDiff デモのご閲覧を強くお勧めしております。 その後、SimDiffの使用中においてクイックリファレンスとして本書をご利用頂けます。本書は横幅が細くなっているため、モニター上のSimDiffの横にピッタリとはまります。

EnSoftサポートの要請

ご質問等ございましたら、support@ensoftcorp.comまでご連絡下さい。SimDiffに関します一般的なご質問の際には、メールにご質問内容を記入して下さい。

SimDiff作動中にエラーが発生した場合には、SimDiffのログをご送信下さい。
ログを開くには、 Windows の [スタート] メニューから SimDiff ログ を選択し、ご希望のロケーションに保存してから、メールに添付して下さい。

用語

当説明書とSimDiffのユーザーインターフェイスにおいて、モデルに関する下記の用語が使用されます:


インストールと設定

インストール

EnSoftからのメールまたはSimDiffのインストールCDに含まれるSimDiffインストーラーを作動させ、画面上の説明に従って下さい。

SimDiffを初めて作動させると、ライセンスキーもしくはライセンスサーバー情報を入力するよう指示されます。この時点で、ライセンスキー取得に関する説明をメールで受信されているはずです。そのメールをまだ受信されていない場合には、sales@ensoftcorp.comまでご連絡下さい。

SimDiffは、使用開始時より大抵のバージョン管理システムと併用することができます。詳細に関しましては、リポジトリの統合セクションをご参照下さい。

MATLAB/Simulinkのインストール設定

MATLABがSimDiffにより初めて要求される時、使用しているコンピューターにMATLAB/Simulinkのインストールを設定するよう指示されます。設定から自動検出プロセスに戻るか、又は手動でインストールを追加・削除することができます:
ファイル設定.

注意: 適合性の問題につき、SimDiffはWindows Vista以上においてMATLAB R14SP1以下に接続することができません。

ウィンドウ位置の変更

SimDiffは、SimDiffとSimulinkのウィンドウを整列させ、画面を要領よく使用します。このデフォルト位置は、設定にて変更することができます:
ファイル設定.

window position example

SimDiffの起動

リポジトリクライアントからSimDiffを作動する場合は、SimDiffの使用セクションに進んで下さい。

モデル選択ウィンドウ

SimDiffの起動後、モデル選択ウィンドウが開き、比較やマージしたいファイルを入力するよう要請されます。手順に従ってください。

1. モードを選択する

比較: 変更をマージすることなく、2つのモデルの比較のみを行う場合。このモードは、誤ってモデルを変更しないようにSimDiffのマージボタンをディスエーブルにします。

マージ: このモードでは、1つのモデルから他のモデルへ変更をマージすることができます。

2. 比較/マージを行うモデルを選択する

選択されたモードによっては、SimDiffが使用するモデルの種類が最高4つあります:

左モデル: 自分が変更したモデルまたはローカルコピー。

右モデル: 他のユーザーが変更したモデルまたはリポジトリー内のコピー。

ベースモデル: 左と右モデルの最新の共通先祖。これは、オプショナルとなっており、3点間比較やマージのみに使用されます。

出力モデル: 「マージ」モードにおいて、4つ目のオプショナル出力モデルを指定することができます。指定しない場合には、マージ結果が左モデルに保存されます。

「比較」モードにおいて、ライブラリリンクを比較するオプションがあります。詳細に関しましては、ライブラリリンクの解除セクションをご覧下さい。

3. 比較・マージを開始する

モードの選択とモデルの指定終了後、スタート ボタンをクリックします。

3点間 vs 2点間比較とマージ

3点間比較は、モデルがどの様に異なるかのみだけでなく、どの様に変更されたかを出力するため、2点間比較より正確な手段となっています。その結果、3点間マージは、2点間マージより正確なものとなります。唯一の違いは、3点間比較は、共通の祖先を使用するというです。簡単な例を見てみましょう。

原型モデル
A
B

上記モデルが2人のユーザーにより下記モデルに変更されたとします。

モデル1モデル2
AA
B
C
D
⇐同じ
⇐違う
⇐違う
⇐違う      

モデルの2点間比較は、2つの要素が同じ場合と異なる場合のみを出力します。原型モデルを検討することなく、モデル1にD追加されたのか、モデル2からD削除されたのかを確認することはできません。SimDiffの2点間比較のアプローチは、常に右モデルが変更されたものとして想定します。そのため、上記例においては、D削除されたものとして報告されます。マージの段階において、Dが削除されるべきかまたはマージされたモデルに保存されるべきかは、ユーザーにより決定されます。全2点間マージツールにおいて、マージ後のモデルは、マージ中にユーザーにより決定されることにご注意下さい。

対照的に、3点間比較は、比較される2つのモデルと原型モデル(共通の祖先)を検討し、どの様にモデルが変更されたかを出力します。

モデル1モデル2
AA
B
C
D
⇐同じ
⇐削除
⇐追加
⇐追加      

上記情報により、下記のマージされたモデルの作成が容易となります。

マージされたモデル
A
C
D

MATLABからSimDiffを使用

MATLABからSimDiffを使用するには、まずMATLABのパスにSimDiffインストレーションディレクトリを追加する必要があります:

これで、MATLABからSimDiffの開始やSimDiff APIを使用することができます。オプションの完全リストに関しましては、MATLABにhelp simdiff4またはdoc simdiff4と入力して下さい。


SimDiffの使用

SimDiffは、左に自分のモデルを、右にリポジトリのモデルを表示します。両モデルへの変更もまた表示されます。モデル内の要素をダブルクリックすると、SimDiffはSimulinkのウィンドウ内にそれを表示します。

SimDiffには、基本機能の使用法を説明する入門ガイドがあります。 それには、ガイドのいくつかのセクションにおいて使用されるサンプルモデルのセットが含まれています。 Windows の [スタート] メニューからスタートガイドを開くことができます。

ツールバーボタン

synchronize button

同期

change report

変更レポートの作成(**)

next change

次の変更

previous change

前の変更

next conflict

次のコンフリクト

previous conflict

前のコンフリクト

sync Simulink

Simulinkウィンドウにおいて現在選択されているブロックを検索する

sync Stateflow

Stateflow Editorにおいて現在選択されているStateflowオブジェクトを検索する

view in simulink window

Simulinkウィンドウに要素を表示する

open model

モデルを開く

merge elements

変更をマージする(*)

hierarchy merge

階層マージ‐コンフリクトとStateflowを除く選択された要素と子孫をマージする(*) (***)

undo

最後に実行されたマージアクションをアンドゥする(*)

redo

最後に実行されたマージアクションをリドゥする(*)

選択された要素をレビュー済みとして印付けする

選択された要素をレビュー済みとして印付けする (**)

選択された要素をレビュー未済として印付けする

選択された要素をレビュー未済として印付けする (**)

選択された要素と全子孫をレビュー済みとして印付けする

選択された要素と全子孫をレビュー済みとして印付けする (**)

選択された要素と全子孫をレビュー未済として印付けする

選択された要素と全子孫をレビュー未済として印付けする (**)

*  Team版のみ
** TeamとProfessional版のみ
*** コンフリクトしているマージアクションを除外します。配置、そしてその結果、実行動作が変わる可能性があるため、Stateflowマージアクションも除外します。結果、ユーザーは、1つずつマージして確認する必要があります。

情報パネル

情報パネルは、現在選択されている要素の簡単な説明を提供します。SimDiffの初心者には、大変便利な機能となります。

属性変更の視覚化

下部のタブグループ内にある属性パネルで選択した要素に対する属性変更を視覚化することができます。 このパネルのツールバーにはトグルボタンがあり、基準値、フィルタリング済みの属性、変化していない属性の表示/非表示を切り替えることができます。

属性の値の変更を詳しく確認するには、該当する属性の省略ボタンをクリックします。 大半の属性では二つの値をハイライト表示し、変更を表します。 真理値表の値を持つ属性ではStateflowが表示する真理値表の形式を真似たカスタムレンダラーをハイライト表示します。 Simulinkのマスクパラメータに対応する属性では、全てのマスクパラメータとその変更を記す表をハイライト表示します。

マージ

手動で変更のマージを行う場合には、Simulinkのウィンドウ内で直接モデルを編集し、SimDiffの同期ボタンをクリックします。このマージは、SimDiffのアンドゥシステムにより探知されないのでご注意下さい。

SimDiffは、マージの開始時にモデルのバックアップコピーを自動的に作成します。デフォルトでは、バックアップコピーは:
「...\Documents\SimDiff\model-backup」7日間保存されます。これは、設定において変更することができます:
ファイル設定.

マージアクション

マージアクションは、2つのモデルツリー間の色付きの矢印により表示されます。

added element arrow 右モデルに要素が追加された場合、このマージアクションをクリックしてターゲットモデルに同じブロックを追加することができます。

deleted element arrow 右モデルから要素が削除された場合、このマージアクションをクリックしてターゲットモデルから同じブロックを削除することができます。

merge changed element arrow 右モデルにて要素の属性が変更された場合、このマージアクションをクリックしてターゲットモデルにこの属性変更をコピーすることができます。

コンフリクトと依存性

左と右の両モデルにおいて同じ要素が変更された場合、これをコンフリクトと呼びます。右モデルの変更が適用された場合、左モデルの変更の幾つかが上書きされる可能性があります。左と右の両モデルにおける変更は、ベースモデルが利用可能な場合のみ決定することができます。そのため、コンフリクトは、3点間比較・マージモードにおいてのみ検知することができます。

コンフリクトのマージアクションは、conflict merge icon 赤いマージアイコンにて表示されます。

変更の中には、他の変更に依存するものもあります。例えば、シグナルを追加するには、接続するブロックが存在しなければなりません。 SimDiffは、依存性を理解しているため、マージアクションの実行時に依存性変更を自動的に適用します。

変更がコンフリクトしている変更に依存している場合は、そのマージアクションはdependent on conflict merge icon オレンジのアイコンにて表示されます。 それをクリックすることにより、全依存性マージアクションを適用します;これにより、左モデル内の変更の幾つかが上書きされる可能性があります。

変更が実行不可能なマージアクションに依存している場合には、そのマージアクションは遮断されます。 遮断されたマージアクションは、blocked merge action overlay icon 上塗りのアイコンにて表示されます。 Simulinkウィンドウ内においてモデルを直接変更し、上記変更を試みることができます。実行後、同期ボタンをクリックして下さい。

依存性タブを使って、依存性マージアクションを表示することができます。依存性は、ツリー内に配列され、先祖の前に子孫が実行されなければなりません。

重要: Simulinkで直接モデルを編集した後、SimDiffに変更が実行されたことを知らせる必要があります。これは、synchronize button同期ボタンをクリックすることにより行うことができます。

マージアクションとフィルター

要素差分がフィルターされる場合、通常その要素のマージアクションは表示されません。その例外は、マージアクションがフィルターされないマージアクションに依存する場合です。その場合、[filtered merge action arrow]空のマージアクションアイコンが表示されます。このマージアクションを直接マージすることはできませんが、依存性マージアクションがマージされる場合には、マージされます。

Simulink/Stateflowにおける変更表示

要素をSimulink/Stateflowのウィンドウに表示するには、そのツリービュー内の要素をダブルクリックするか、又はツリービュー内で要素を選択してview in simulink windowウィンドウツリーバーボタンをクリックします。

Simulinkにおけるハイライト変更

Simulink/Stateflowにおいて差分を表示する時に、Simulinkの変更を種類に基づいてハイライトすることができます。この設定は、ビュー Simulinkにおけるハイライト変更メニューオプションからイネーブル/ディスエーブルにすることができます。この効果は、モデルが開いている時のみ有効となります。

Simulinkハイライトがイネーブルの状態では、要素は下の表にあるデフォルト色により識別されます。

Simulinkハイライト色
node_block_add.png 追加要素
node_block_delete.png 削除要素
node_block_change.png 要素または依存性要素に変更がある
node_block_conflict.png 要素または依存性要素にコンフリクトする変更がある

追加、削除、変更要素の色は、ファイル設定からカスタム変更することができます。

このハイライト手段は、ブロック色設定を覆いますが、変更することはなく、ハイライトはモデルファイルに保存されません。

SimDiffは、ブロックとラインにハイライトを適用します。分枝したラインにおいては、全枝がハイライトされるため、分枝したラインのハイライトが不正確な場合があります。

監査変更

SimDiffには、変更のレビューと監査における幾つかの便利な機能があります。ユーザーは、変更にメモを入力、レビュー済みとして変更に印付け、変更にタグを適用することができます。また、SimDiffは、前回のレビューのユーザー名と日付を記録します。

監査データは、ファイルに保存・読み込むことができ、変更レポートに出力することもできます。「変更レポートの作成」セクションをご参照下さい。

監査機能は、新しいユーザーインターフェイスコンポーネント数を追加します:

監査タグは、分類を目的として変更に追加することのできるマーカーです。タグには、名前、色、解説があます。名前は、タグを識別するために使用され、アルファベット、ダッシュ、アンダースコア、ピリオドを使用することができます。色もタグの識別に役立ち、定義済みのSimulink色を使用できます。解説は、タグの重要性における詳細を提供する短文となります。

タグは、タグ欄に新しいタグ名を入力するだけで、監査パネルから容易に適用又は作成することができます。タグ欄内の複数のタグは、コンマにより分けられます。また、タグ欄には、存在するタグの適用や削除を行うことのできるドロップダウンボックスがあります。監査タグの完全リストは、監査設定から表示・編集を行うことができます。

ユーザーは、監査メモを使い、差分についての詳細を入力することができます。監査パネルにおいて、ユーザーは、新しいメモの入力や前回使用されたメモの選択をドロップダウンから実行することができます。

監査データは、監査メニューにおいて保存と読み込むことができます。これにより、現在のセッションのデータを保存し、後に読み込むことができます。また、監査データファイルは、他のユーザーに転送することができるため、チームメンバー間で監査作業を分担することができます。

SimDiffは、大量の監査データを編集する手段も提供します。メインのツールバーには、選択された変更にレビュー済みとして印付け又は印削除を実行するボタンがあります。複数の項目が選択されている場合は、このボタンは選択されている全変更を印付け又は印削除します。各ツールバーボタンには、選択されている変更の全子孫の印付け又は印削除を実行するドロップダウン矢印が右下の角にあります。更に、複数の項目が選択されている場合、監査パネルは、選択されている全項目の監査情報の編集を表示し、実行することができます。

変更レポートの作成

変更レポートには、比較したモデルに存在する、全ての差分項目の一覧が表示されており、XML または HTML 形式で保存することが可能です。なお、MATLAB API では、MATLAB 変数の戻り値として、変更レポートを取り扱うこともできます。

変更の内容は、モデルの属性の変更、設定パラメータの変更、システム変更、Stateflow マシンの変更など、主に 4 種類に区分されます。

システムの変更は、コンテナ要素ごとに構成されています。各コンテナ要素には、以下の情報が含まれています。

変更レポートを作成するには、ファイル変更レポートの作成...メニューオプションを選択するか、もしくはchange reportウィンドウツールバーボタンをクリックします。すると、レポートファイルのロケーションやその他のレポート作成に関するオプションを選択できるダイアログボックスが現れます。

ハイライト表示モデルのエクスポート

差分がハイライト表示されているモデルのコピーをエクスポートするには、[ファイル] > [ハイライト表示モデルのエクスポート... ] メニューをクリックします。差分項目をマージした場合には、同期化の実行を確認するメッセージが表示されます。その後、モデルの保存作を指定するダイアログボックスが表示されます。エクスポート対象のモデル名は、元のモデルと一致しますが、モデル名の末尾に "_highlighted" が付属されています。

Simulink のブロックまたはアノテーションの場合、背景色によって変更内容を識別します。なお、Simulink における変更項目のハイライト表示と同じ配色が、適用されています。Simulinkにおけるハイライト変更セクション を参照して下さい。

Stateflow オブジェクトの場合、接頭文字によって変更内容を識別します。使用される接頭文字は以下の通りです。オブジェクトが変更された場合には、「c_」、追加は「a_」、削除は「d_」、コンフリクトには「co_」が適用されています。なお現時点では、Stateflow にてオブジェクトのカラー表示がサポートされていないため、接頭文字を使用しています。

また、別の接頭文字が適用される、特殊なケースも存在します。Sate アクティビティの出力が可能な State では、Stateflow によって自動的に関連した Data オブジェクトが作成されます。R2012b 以前のバージョンでは、作成される Data 名として、常に State 名と一致した名前が使用されていました。この場合、SimDiff は State にて特殊な接頭文字を適用し、State と Data オブジェクトの両方に変更が生じたことを識別します。フォーマットは以下の通りです。 <data-接頭文字>D_<state-接頭文字>_<state-名前>.

例えば、「State1」という名前の State に関連する Data が削除された場合、接頭文字が適用されて名前が「dD_c_State1」に変更されます。

変更のフィルター

SimDiffは、特定の変更に容易に的を絞ることのできる強力なフィルター機能を備えています。これにより、特定の要素(例えば、定数ブロック)や比較に当たり除外したい要素を指定することができます。同様に、表示を望む、もしくは望まない属性変更を指定することもできます。また、特定の要素一式の属性における変更のみを含むよう指定することも可能です。

フィルターは、要素と属性フィルターの2種類に分けられ、包含モードと除外モードにすることができます。

要素フィルターを使って、比較に包含/除外する要素タイプを指定することができます。可能な要素タイプ値は:

属性フィルターは、比較に包含/除外される属性を指定することができます。可能な属性値は:

属性名を指定するときは、ワイルドカードを使用できます。星印は(*)任意の文字列に一致し、 クエスチョンマークは(?)1文字に一致します。例えば、「Port*」と入力すると、「Port」から始まる全ての属性をフィルタリングできます。

デフォルトでは、属性フィルタはすべての要素タイプに適用されます。なお、属性フィルタを設定することによって、特定の要素タイプのみに適用することも可能です。

SimDiffには、要素と属性の変更において、2種類のフィルターモードがあります。

複数の除外フィルターがイネーブルの場合、その全てを除外する効果があります。複数の包含フィルターがイネーブルの場合には、その全包含フィルターを含み、その他の除外フィルターを除外する効果があります。要素と属性フィルターは、独立しています。例えば、ラインが含まれ、色属性が除外される場合、SimDiffはラインの変更のみを表示し、ラインにおける色属性以外の全ての属性変更を表示します。

属性と要素フィルターの適用においてSimDiffが実施するプロセスの完全説明は、下記の通りとなります。まず、SimDiffは、種類(属性または要素)ごとにフィルターを分別します。各グループにおいて: 

フィルター編集には、編集フィルター... メニューオプションを選択するか、又はfilters editor ボタンをクリックします。比較の終了後に無視したい変更を除外することもできます。それには、無視したい要素または属性を右クリックし、希望の除外フィルターに追加します。結果は、直に更新されます。

内蔵フィルターのセットは、SimDiffに既に搭載されています。内蔵フィルターの属性または要素のリストを変更することはできません。しかし、その他のフィルターと同様に、イネーブルまたはディスエーブルにすることができます。

フィルター除外された要素は、SimDiffのモデル階層にfiltered element アイコンで表示されます。フィルターされた属性は、属性タブにfiltered attribute アイコンで表示されます。

属性フィルターは、マージに影響を与えません。そのため、属性変更のある要素がマージされる場合には、フィルター除外に関わらず、その属性全てがマージされます。配置に関連する属性のみがその例外となります。この属性は、フィルターされていない時のみマージされます。

サブシステムの比較

SimDiffは、モデルファイルだけでなく、モデルファイル内のサブシステムの比較とマージを実行することができます。モデルファイルの選択後、ユーザーは、モデルの比較またはマージの実行時に、使用するモデルファイル内のサブシステムを選択することができます。

サブシステムの比較により、ユーザーはモデルの一部に焦点を置くことができます。これにより、ユーザーはモデルのその他の部分の変更による背景雑音を減少させ、焦点を絞ることができます。また、SimDiffの短い比較時間を更に削ることもできます。

この機能を使用し、別々のサブシステムを互いに比較することもできます。これは、ブロックがリファクター(例えば、1つのサブシステムをその他に移動、または新しいサブシステムや新しいモデルの下に分類等)される場合に役に立ちます。事実、サブシステムをモデル全体と比較することもできます。

注意: ポートの移動により親システム内のラインの接続が切られる場合があるため、サブシステムのインポート/アウトポートのマージ実行時には特別な注意が必要となります。

Workspace 変数の比較

SimDiff のオプション機能を使用すると、MATLAB Base Workspace およびに Model Workspace から Workspace 変数を比較できます。

Workspace 変数を比較するには、以下の手順に従ってください。

各変数における差分の結果の詳細情報が、GUI 上に表示されます。MATLAB Workspace ウィンドウに類似したビューアが表示されます。[struct] または [matrix] の値をダブルクリックすると、別のタブに内容が表示されます。

ライブラリリンクの解除

ライブラリブロックの参照ブロックであるライブラリリンクがモデルに含まれている場合があります。デフォルトでは、SimDiffは、モデルファイル内の情報のみを比較します-この場合、ライブラリロックではなく参照ブロックです。しかし、SimDiffには、参照付けられた全てのライブラリブロックを比較するように、ライブラリリンクを解除するオプションがあります。

リンクを解除するには、下記の説明に従って下さい: 

マージアクションのアンドゥ

SimDiffでは、Simulink要素のマージアクションのアンドゥ/リドゥを実行することができます。この実験的機能を適切に使用するにはいくつかの制限と基準があります。例えば、Stateflow要素のマージアクションのアンドゥは、サポートされていません。正確にアンドゥ機能を実行するには、下記の様な状況を避けなければなりません: 

上記またはその他の理由によりアンドゥ作業に失敗した場合でも、SimDiffにおいて次のアンドゥ作業に進むことができます。

重要: 同期終了時、アンドゥ/リドゥの履歴は消去されるのでご注意下さい。

異なるMATLABで保存されたモデルの比較

SimDiffでは、異なるMATLABで保存されたモデルを比較することができます。 これは、比較モードのみにて実行することができます。マージモードでは、SimDiffは、システムにある最も類似した共通のより新しいMATLAB版にモデルをアップコンバートする必要があります。 アップコンバートはモデルの一時的コピーを作成し、アップコンバートされたモデルはその一時的コピーに保存されます。 左モデルがアップコンバートされ、出力モデルが指定されていない場合、マージが終了すると、左モデルはアップコンバートされたものに上書きされます。

一時的モデルコピー

比較やマージの実行に当たり、SimDiffがモデルの一時的コピーを作成する特別な状況があります。その状況とは: 

モデルの一時的コピーが作成された場合、SimDiffは、GUIのモデルパスの隣にtemp file buttonボタンを表示します。 このボタンをクリックすると、ファイル管理ツールが開かれ、対応する一時的モデルを選択します。

注意: マージモードにおいて、同期時もしくはSimDiffの終了時に、一時的ターゲットモデルで実行されたマージが原型ターゲットモデルに伝搬されます。


Stateflowサポート

SimDiffは、Stateflow要素のマージもサポートしています。Stateflow要素の位置は操行に影響を与える場合があるため、Stateflowのマージ時には充分な注意を払う必要があります。Simulinkと同様にマージアクションを使って、必要に応じて位置を調節することができます。


自動化

バッチモードで SimDiff を使用する

スクリプトから SimDiff 実行する場合には、SimDiff バッチモードの実行ファイル、sd4.exe の呼び込みを行ってください。なお、モデルのマージにはユーザとの相互作動が必要なため、バッチモードではマージがサポートされておりませんのでご注意ください。

SimDiff インストール先を Windows のパス内で指定しておくと便利です。

sd4.exe の戻り値:

バッチモードの API の詳細は、コマンドプロンプトでsd4 -h を実行してください。

SimDiffに引数を渡す

SimDiffの呼び出し時に、コマンドライン引数を渡すことができます。これは、"C:\Program Files\EnSoft\SimDiff\simdiff4.exe" にショートカットを作成するか、simdiff4.exeをコマンドラインから呼び出すことにより実行することができます。

SimDiff の GUI に適用する引数に関するヘルプは、ヘルプコマンドライン オプション から表示するか、あるいはコマンドプロンプトを開いて以下の文字列を入力して下さい。simdiff4.exe -h

SimDiff 終了コード

SimDiffはコマンドラインおよびデスクトップアプリに対して以下の終了コードを返します:

コード説明
0成功 - 差分は見つかりませんでした
1成功 - 差分が見つかりました
100失敗 - 一般
101失敗 - ライセンスを検証
102失敗 - 無効なプログラムの入力
103失敗 - 無効なプログラムの設定

注記 - 上記のコードは暫定的なものであり、今後のリリースで変更される可能性があります


リポジトリ統合

SimDiff は、リポジトリ システムのクライアントとの統合によって、最適に稼働します。大半のリポジトリ システムでは、複数バージョンのファイルがリポジトリ内に存在する場合に、比較やマージを実行することが可能です。このような操作環境は、大半の場合「クライアント側」で実行されます。一般的には、リポジトリのクライアント アプリケーションは、内蔵または同梱のツールを稼働することによって、コマンドラインの引数を用いて編集時のチェックアウトの比較を実行します。

しかし、大半のリポジトリシステムにて、任意の外部ツールを使用するよう設定することが可能です。ファイル拡張子などのパターンの一致に基づいて、異なるツールを設定できるリポジトリも存在します。この種類のシステムであれば SimDiff にて容易に設定することが可能ですが、差分とマージの適用を考慮したシステムであればどのようなシステムでも稼働します。

EnSoft では、多種のリポジトリ システム クライアントと SimDiff とを統合する詳細の情報を、弊社のサイトにて提供しています。なお、このサイトにて、全てのシステムがカバーされているわけではございませんので、何卒ご了承ください。ただし、このサイトにシステムが記載されていない場合においても、設定可能な場合があります。SimDiff をリポジトリ システム クライアントと統合する場合の、一般的な操作手順は以下の通りです。

SimDiff とご利用のリポジトリ システム クライアントの統合処理に不具合が発生する場合には、迅速に対応させて頂きますので、お気軽にsupport@ensoftcorp.com までご連絡下さい。

リポジトリ クライアントを統合する場合の基本操作

ほとんどのクライアントにて、比較処理とマージ処理、2種類のコマンドを実行するよう設定する必要があります。

比較を実行する場合のコマンドは、以下の通りです。
"C:\Program Files\EnSoft\SimDiff\simdiff4.exe"
-baseModel <ベースモデル> -leftModel <左モデル> -rightModel <右モデル>

マージを実行する場合のコマンドは、以下の通りです。
"C:\Program Files\EnSoft\SimDiff\simdiff4.exe"
-merge -baseModel <ベースモデル> -leftModel <左モデル> -rightModel <右モデル> [-outputModel <出力モデル>]

(SimDiff インストールフォルダのパスを使用して下さい。)

<ベースモデル>、<左モデル>、あるいは<右モデル>の部分は、クライアントに適した構文で置き換えて下さい。リポジトリ クライアントにて、個別の出力ファイルが必要な場合には、4番目のパラメーターを追加して、出力ファイルを特定して下さい。

リポジトリ クライアントによってモデル名に不正な文字が追加されてSimulinkを開くことができない場合には、SimDiff が自動的に不正な文字を削除します。

クライアントの設定によって、パターンの一致処理が無効の場合には、SimDiff はモデルファイルでのみ適用されます。この状態は、リポジトリ内にモデルファイル以外のファイルが存在する場合に、不具合が発生する原因となります。この問題を回避するには、SimDiff と同梱のToolSelector ユーティリティプログラムを、C:\Program Files\EnSoft\SimDiff\utils (または SimDiff のインストールフォルダ) から使用して下さい。なお、ToolSelector の設定方法に関する情報は、utils ディレクトリにあるファイルをご参照下さい。


法定通知