SimMergeにようこそ

目次

使用前に

インストレーションとコンフィギュレーション

インストレーション
リポジトリ統合
ClearCaseエキスプローラとの統合
TortoiseSVNとの統合
その他のリポジトリクライアントとの統合
MATLAB/Simulinkインストレーションのコンフィギュレーション
ウィンドウの位置変更

SimMergeを始動する

3点間マージ / 2点間マージ

SimMerge を使って

ツールバーボタン
情報パネル
マージアクション
コンフリクトと依存性
サポート

法律上の通知


あなたが始める前に

SimMergeの3点間マージは、他チームのメンバーによる変更を1つのSimulinkモデルに統合する最も容易かつ確実な手段です。弊社では、SimMergeに付属するフラッシュデモを観ることをお勧めしています。

それの後にあなたは、 SimMerge を使っている間に、このマニュアルを速い言及として使用することができます。 その小さい幅はそれを完全に SimMerge の隣りにあなたのモニターにフィットさせます。

私はサポートを切望します

EnSoftサポートのリクエスト ご質問等がありましたら、support@ensoftcorp.comまでご連絡下さい。 一般的なご質問に関しましては、メールにその旨を記載して下さい。

SimMerge作動中のエラーに関しましては、SimMergeログを付記して下さい。ログを開くには、スタート ▷すべてのプログラム ▷EnSoft ▷SimMergeSimMergeログを選択して下さい。

ログを保存して、メールに添付して下さい。

(名) 定義, 説明(語または語句として)

このマニュアルと SimMerge ユーザインタフェース全体(で・に)モデルのための次の用語は使われる:
モデルに目標を定めてください: 変化がに合流させられるであろうモデル。 これはあなたが修正したモデルです。
貢献者モデル:そ(れ・こ)からあなたが引いているモデルは変わります。 これは倉庫にしまっておかれるモデルです。
ベースモデル: 標的と貢献者モデルへの最も最近の普通の先祖。
ラボ機能 ラボ機能:これは、実験段階の機能です。そのため、この機能は、期待通りに作動せず、使用上の制限が存在する場合があります。何時でもこの機能を変更、削除することができます。


インストレーションとコンフィギュレーション

インストレーション

EnSoftから送信されたメール又はSimMergeインストレーションCDからSimMerge-3-1-x-install.exeを作動して、画面上の説明に従って下さい。

SimMergeを初めて作動させる時は、ライセンスキー又はライセンスサーバー情報を入力するよう指示されます。

リポジトリ統合

リポジトリクライアントへの統合が、SimMergeの最良の作動環境となっています。下記のセクションでは、SimMergeClearCase Exploreやその他のリポジトリクライアントとの統合が説明されています。

ClearCase Exploreとの統合

スタート ▷すべてのプログラム ▷EnSoftSimMergeClearCase統合ツールを選択します。.

選択後、下記の説明に従って下さい。

TortoiseSVNでの統合

マージツールの設定

TortoiseSVNを使用したモデルファイルのマージ

まず知っておくべきこととして、TortoiseSVNは、自動的に対応できないコンフリクトを解決するためにのみ外部マージツールを使います。つまり、モデルファイルのマージ時に、SimMergeが呼び出されるとは限りません。例えば、モデルファイルが一つのブランチにおいて変更され、メインブランチでは無変更な状態であるとします。モデルファイルが変更されたブランチからメインブランチへとマージされる場合には、TortoiseSVNは、SimMergeにマージをさせることなく、変更されたブランチからメインブランチへと単純にファイルコピーを行います。

次に知っておくべきことは、単純なマージを行うことができない場合、TortoiseSVNは即座にSimMergeを呼び出すことをしません。しかし、TortoiseSVNは、ファイルが“in conflict”であるという印を付けます。その後、ファイルを右クリックし、コンテキストメニューから競合の編集(E)を選択する事によりSimMergeを呼び起こすことができます。

TortoiseSVNを使用したコンフリクト中のモデルファイルを含むブランチの典型的なマージ方法例は、下記の通りです。

差分ツールの設定

"Setup"にある説明に従い、下記の変更を含めてSimMergeを差分ツールとして設定することができます。

TortoiseSVNSimMergeを外部差分ツールビューアーとして呼び出すケースが多くあります。例えば、前バージョンでファイルを比較する時などです。これを実行するには、現在のブランチ中に保存されている最低2つのリビジョンを含むモデルファイルを右クリックして、コンテキストメニューから以前のバージョンと差分(D)を選択します。

その他のリポジトリクライアントとの統合

多数のリポジトリクライアントは、特定のファイルタイプをマージするために外部ツールを選択することを許可しています。詳細に関しましては、お客様のリポジトリクライアントの説明書をご参照下さい。

多くのクライアントにおいて、実行するコマンドの入力が要求されます。SimMergeに関しましては、下記のコマンドを使用してください
"C:\Program Files\EnSoft\SimMerge\SimMerge.exe"
baseMDL targetMDL contribMDL [outputMDL]

(SimMergeインストレーションへのパスを使って下さい。)

baseMDL、targetMDL、とcontribMDLを適切なクライアントのシンタックスに置き換えて下さい。リポジトリクライアントの中には、別個の出力ファイルを必要とするものがあります。出力ファイルを指定するには、4つ目のパラメータを追加します

Simulinkが開くことのできないモデル名にリポジトリクライアントが無効な文字を追加する場合は、SimMergeは、自動的にそれを消去します。

リポジトリクライアントが.mdl ファイルのマージツールやテキストファイルの他のマージツールの指定を許可しない場合、
"C:\Program Files\EnSoft\SimMerge\utils"
(又は、SimMergeのインストール先)にあるmergetool.batを使用することができます。

mergetool.bat を使用するには、「HANDLE NON-MDL FILES」と呼ばれるセクションを変更してテキストマージツールを呼び出し、そして、リポジトリクライアントのコンフィギュレーションを行って、mergetool.batを呼び出して下さい。mergetool.bat がmdl ファイルのSimMergeとその他のファイルのテキストマージツールを呼び出します

MATLAB/Simulinkインストレーションのコンフィギュレーション

SimMergeを初めて作動させる時、SimMergeはコンピューター中のMATLAB/Simulinkインストレーションを自動的に検出します。設定を選択する事により、自動検出を再作動させたり、手動でインストレーションを追加又は削除することもできます:
ファイル ▷設定

ウィンドウの位置変更

SimMergeは、画面が最適に使われる様に自動的にSimMergeとSimulinkのウィンドウを配列します。デフォルトの位置を変更するには、ファイル▷設定を使用して下さい。

ウィンドウ位置例

SimMergeを始動する

SimMergeをリポジトリクライアントから作動するようコンフィギュレーションされている場合は、この手順をとばして次の手順、SimMergeを使用する、に進んで下さい。

リポジトリクライアントからではなく、直接SimMergeを始動する場合は、この手順において、比較又はマージを望む

スクリーンショット画像

ファイルを入力する手段が説明されています。

1 モードを選択する

3点間マージ:これは、モデルのマージに当たり、最も容易かつ確実な手段です。SimMergeに3つのモデルを提供します。(3点間マージと2点間マージの詳細については、下記に説明してあります。)

2点間マージ:このモードは、3点間マージに必要な3つのモデルが無い時にのみに使用されます。(3点間マージと2点間マージの詳細については、下記に説明してあります。)

比較:変更をマージすることなく、2つのモデルを比較したい時に使用されます。このモードは、SimMergeのマージボタンを無効にするため、モデルを間違って変更することがありません。

2 マージするモデルを選択するSelect Models to Merge

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

ターゲットモデル:マージ先のモデル。このモデルに、マージによる変更結果が反映されます。

コントリビュータモデル:マージ元のモデル。このモデルへの変更結果がマージ操作により反映されます。3点間マージ機能を利用する場合、反映される変更結果はベースモデルとの変更差分になります。

ベースモデル:ターゲットモデルとコントリビュータモデルの直近の共通祖先モデル。3点間マージ機能を利用する場合のみ指定します。

3 点間マージと2点間マージ

モードとモデルの選択後、開始をクリックして下さい。

3点間マージと2点間マージ

3点間マージが2点間マージよりも優れている理由は、差分のみでなくモデルの変更状態をユーザーに教えてくれるからです。

原型モデル
A
B

例えば、上記のモデルが2人のユーザーにより変更され、結果は下記の通りとします。

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

モデルの2点間マージは、同一の要素と相違する要素のみを表示します。原型を吟味しなければ、Dがモデル1に追加されたのか、モデル2から削除されたのかが分かりません。この2つのモデルをマージするユーザーは、もう1人のユーザーがDを削除したと誤解して、マージされたモデルから消去する可能性があります。

しかし、3点間マージは、マージされる2つのモデルと一緒に元のモデルを調べ、どの様にモデルが変更されたかを教えてくれます。

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

この情報があれば、下記のマージされたモデルを作成することは容易です

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

SimMergeを使用する

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

モデル中のマージアクションボタンをクリックすると、差分をマージする事ができます。SimMergeは、この様に容易に使用することができます

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

ツールバーボタン

シンクロナイズボタンリフレッシュ モデルを開くモデルを開く
前の変更前の変更 simulinkウィンドウにて表示Simulinkウィンドウに要素を表示する
次の変更次の変更 マージ要素変更をマージする
前のコンフリクト前のコンフリクト 階層マージ階層マージ- コンフリクトとStateflowを除く、選択された要素と子要素をマージします。/td>
次のコンフリクト次のコンフリクト アンドゥ最後に実行されたマージアクションをアンドゥする
Simulinkをシンクロナイズする現在のSimulink要素に行く リドゥ最後に実行されたマージアクションをリドゥする
Stateflowをシンクロナイズする現在のStateflow要素に行く

情報パネル

情報パネルは、現在選択されている要素を簡単に説明します。SimMerge初心者には、とても便利なものです

用語

当マニュアルとSimMergeユーザーインターフェイスには、モデルに関する下記の用語が使用されています。

ターゲットモデル:マージ先のモデル。このモデルに、マージによる変更結果が反映されます。

コントリビュータモデル:マージ元のモデル。このモデルへの変更結果がマージ操作により反映されます。3点間マージ機能を利用する場合、反映される変更結果はベースモデルとの変更差分になります。

ベースモデル:ターゲットモデルとコントリビュータモデルの直近の共通祖先モデル。3点間マージ機能を利用する場合のみ指定します。

マージアクション マージアクションは、2つのモデルツリー間にある色付きの矢印によって示されています

added element arrow 要素がコントリビュータモデルに追加された時、このマージアクションをクリックしてターゲットモデルにそのブロックを追加できます。.

deleted element arrow 要素がコントリビュータモデルから削除された時、このマージアクションをクリックしてターゲットモデル中のそのブロックを削除できます。s

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

コンフリクトと依存性

dependent merge arrow 同一の要素がターゲットとコントリビュータにおいて変更された場合、これをコンフリクトと言います。これは、コントリビュータ中の変更が適用された場合に、ターゲットモデル中の幾つかの変更が上書きされる可能性を意味しています。

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

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

blocked item overlay 変更が実行不可能なマージアクションに依存している場合は、その変更を防止します。手動でモデルを修正して、その変更の適用を試みることができます。終了時に、リフレッシュボタンをクリックして下さい

あなたは、 Dependencies タブを使うことによって、依存する合流点の行動を見ることができます。 依存は木で組織化されます、そしてそこで子供たちは親の前に処刑されなければなりません。

重要:Simulinkにおいてモデルを直接編集した後は、その変更をSimMergeに知らせる必要があります。リフレッシュボタンをクリックして実行して下さい。シンクロナイズボタン


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

ラボ機能.

SimMergeでは、Simulink要素におけるマージアクションをアンドゥ/リドゥすることができます。当ラボ機能の使用に当たり、制限やガイドラインがあります。例えば、Stateflowの要素におけるマージアクションのアンドゥは、サポートされていません。アンドゥ機能を正確に機能させるためには、下記の状況を避ける必要があります。

上記、又はその他の状況により、アンドゥ操作が失敗に終わったとしても、SimMergeは、次のアンドゥ操作実行を許可します。

注意:アンドゥ/リドゥの履歴は、シンクロナイズの完了時に消去されます。


Stateflowサポート

SimMergeは、Stateflow要素のマージもサポートしています。Stateflow要素の位置が動作に影響を及ぼすことがあるため、Stateflowのマージ時には、細心の注意を払う必要があります。必要に応じて、Simulinkと同様、マージアクションを使い、位置を調節することができます。


法律上の通知