SimMergeの3点間マージは、他チームのメンバーによる変更を1つのSimulinkモデルに統合する最も容易かつ確実な手段です。弊社では、SimMergeに付属するフラッシュデモを観ることをお勧めしています。
それの後にあなたは、 SimMerge を使っている間に、このマニュアルを速い言及として使用することができます。 その小さい幅はそれを完全に SimMerge の隣りにあなたのモニターにフィットさせます。
私はサポートを切望します
EnSoftサポートのリクエスト ご質問等がありましたら、support@ensoftcorp.comまでご連絡下さい。 一般的なご質問に関しましては、メールにその旨を記載して下さい。
SimMerge作動中のエラーに関しましては、SimMergeログを付記して下さい。ログを開くには、スタート ▷すべてのプログラム ▷EnSoft ▷SimMerge ▷SimMergeログを選択して下さい。
ログを保存して、メールに添付して下さい。
(名) 定義, 説明(語または語句として)
このマニュアルと SimMerge ユーザインタフェース全体(で・に)モデルのための次の用語は使われる:
モデルに目標を定めてください: 変化がに合流させられるであろうモデル。 これはあなたが修正したモデルです。
貢献者モデル:そ(れ・こ)からあなたが引いているモデルは変わります。 これは倉庫にしまっておかれるモデルです。
ベースモデル: 標的と貢献者モデルへの最も最近の普通の先祖。
ラボ機能:
インストレーション
EnSoftから送信されたメール又はSimMergeインストレーションCDからSimMerge-3-1-x-install.exeを作動して、画面上の説明に従って下さい。
SimMergeを初めて作動させる時は、ライセンスキー又はライセンスサーバー情報を入力するよう指示されます。
リポジトリ統合
リポジトリクライアントへの統合が、SimMergeの最良の作動環境となっています。下記のセクションでは、SimMergeとClearCase Exploreやその他のリポジトリクライアントとの統合が説明されています。
ClearCase Exploreとの統合
スタート ▷すべてのプログラム ▷EnSoft ▷SimMerge ▷ClearCase統合ツールを選択します。.
選択後、下記の説明に従って下さい。
- 1
ClearCaseをインストールするディレクトリを選択して下さい。 - 2
SimMerge をインストールするディレクトリを選択して下さい。 - 3
「インストール」又は「アップデート」ボタンをクリックして下さい。 - 4
VOB構成タブを選択して下さい。 - 5
MDLファイルが含まれているVOBを選択して下さい。複数のVOBを選択するには、最初のVOBをクリックした後、CTRLキーを押しながら各VOBをクリックします。 - 6
「選択したVOBにインストール/アップデート」ボタンをクリックして下さい。
TortoiseSVNでの統合
マージツールの設定
- 1 TortoiseSVNの設定ダイアログを開きます:エキスプローラの右クリックコンテキストメニューにあるTortoiseSVN ▷設定(S)
- 2 外部プログラム ▷マージツールページを選択します。
- 3 高度な設定(A)ボタンをクリックし、マージに関する高度な設定ダイアログボックスを開きます。
- 4 追加(A)…をクリックし、新しい拡張子に対応するマージツールを追加します。
- 5 開いたダイアログボックスでは、「.mdl」を拡張子として、下記のコマンドを外部コマンドとして使います。
"C:\Program Files\EnSoft\SimMerge\SimMerge.exe" %base %mine %theirs %merged - 6 開いている各ダイアログボックスにおいて、OKをクリックして設定を保存します。
TortoiseSVNを使用したモデルファイルのマージ
まず知っておくべきこととして、TortoiseSVNは、自動的に対応できないコンフリクトを解決するためにのみ外部マージツールを使います。つまり、モデルファイルのマージ時に、SimMergeが呼び出されるとは限りません。例えば、モデルファイルが一つのブランチにおいて変更され、メインブランチでは無変更な状態であるとします。モデルファイルが変更されたブランチからメインブランチへとマージされる場合には、TortoiseSVNは、SimMergeにマージをさせることなく、変更されたブランチからメインブランチへと単純にファイルコピーを行います。
次に知っておくべきことは、単純なマージを行うことができない場合、TortoiseSVNは即座にSimMergeを呼び出すことをしません。しかし、TortoiseSVNは、ファイルが“in conflict”であるという印を付けます。その後、ファイルを右クリックし、コンテキストメニューから競合の編集(E)を選択する事によりSimMergeを呼び起こすことができます。
TortoiseSVNを使用したコンフリクト中のモデルファイルを含むブランチの典型的なマージ方法例は、下記の通りです。
- 1 右クリックコンテキストメニューからマージ(M)…を選択し、マージを開始します
- 2 ウィザードを使ってマージタイプとリビジョンを選択後、ウィザード中のマージボタンをクリックしてマージ処理を開始します。
- 3 TortoiseSVNは、コンフリクトしている変更が一つもしくは一つ以上あることをユーザーに知らせますが、自動的に解決することができません。この時点で、ユーザーは、すべて後で解消するを選択します。
- 4 リポジトリには、コンフリクトしているファイルにコンフリクトしていることを表示する黄色い三角形の印が付いています。コンフリクト中のファイルを右クリックし、コンテキストメニューから競合の編集(E)を選択することにより、SimMergeがコンフリクトを解決します。
- 5 コンフリクトが解決し、SimMergeを閉じた後、ファイルを右クリックし、コンテキストメニューから競合の解消(O)…を選択します
- 6 全ファイルが解決すると、マージされた変更をリポジトリに実行することができるようになり、マージが終了します。
差分ツールの設定
"Setup"にある説明に従い、下記の変更を含めてSimMergeを差分ツールとして設定することができます。
- 1 TortoiseSVNの設定ダイアログを開きます:エキスプローラの右クリックコンテキストメニューにあるTortoiseSVN ▷設定(S)
- 2 外部プログラム ▷差分ビューアページを選択します。
- 3 高度な設定(A)ボタンをクリックし、マージに関する高度な設定ダイアログボックスを開きます。
- 4 追加(A)…をクリックし、新しい拡張子に対応するマージツールを追加します。
- 5 開いたダイアログボックスでは、「.mdl」を拡張子として、下記のコマンドを外部コマンドとして使います。
"C:\Program Files\EnSoft\SimMerge\SimMerge.exe" %base %mine %base - 6 開いている各ダイアログボックスにおいて、OKをクリックして設定を保存します。
TortoiseSVNがSimMergeを外部差分ツールビューアーとして呼び出すケースが多くあります。例えば、前バージョンでファイルを比較する時などです。これを実行するには、現在のブランチ中に保存されている最低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を始動する場合は、この手順において、比較又はマージを望む
ファイルを入力する手段が説明されています。
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 |
|---|---|
| A | A |
| B | |
| C | |
| D |
| ⇐同 |
| ⇐相違 |
| ⇐相違 |
| ⇐相違 |
モデルの2点間マージは、同一の要素と相違する要素のみを表示します。原型を吟味しなければ、Dがモデル1に追加されたのか、モデル2から削除されたのかが分かりません。この2つのモデルをマージするユーザーは、もう1人のユーザーがDを削除したと誤解して、マージされたモデルから消去する可能性があります。
しかし、3点間マージは、マージされる2つのモデルと一緒に元のモデルを調べ、どの様にモデルが変更されたかを教えてくれます。
| モデル 1 | モデル 2 |
|---|---|
| A | A |
| B | |
| C | |
| D |
| ⇐同 |
| ⇐削除 |
| ⇐ 追加 |
| ⇐ 追加 |
この情報があれば、下記のマージされたモデルを作成することは容易です
| マージされたモデル |
|---|
| A |
| C |
| D |
SimMergeは、左側にお客様のモデルを、右側にリポジトリのモデルを表示します。また、両モデルへの変更も表示されます。モデルの要素をダブルクリックすると、SimMergeは、Simulinkウィンドウにそれらを表示します。
モデル中のマージアクションボタンをクリックすると、差分をマージする事ができます。SimMergeは、この様に容易に使用することができます
SimMergeは、マージを開始した時点で、自動的にモデルのバックアップコピーを作成します。デフォルトでは、バックアップコピーは、「:
"...\My Documents\SimMerge\model-backup"」に7日間保存されます。この設定を変更することもできます:ファイル ▷設定
情報パネル
情報パネルは、現在選択されている要素を簡単に説明します。SimMerge初心者には、とても便利なものです
用語
当マニュアルとSimMergeユーザーインターフェイスには、モデルに関する下記の用語が使用されています。
ターゲットモデル:マージ先のモデル。このモデルに、マージによる変更結果が反映されます。
コントリビュータモデル:マージ元のモデル。このモデルへの変更結果がマージ操作により反映されます。3点間マージ機能を利用する場合、反映される変更結果はベースモデルとの変更差分になります。
ベースモデル:ターゲットモデルとコントリビュータモデルの直近の共通祖先モデル。3点間マージ機能を利用する場合のみ指定します。
マージアクション マージアクションは、2つのモデルツリー間にある色付きの矢印によって示されています
要素がコントリビュータモデルに追加された時、このマージアクションをクリックしてターゲットモデルにそのブロックを追加できます。.
要素がコントリビュータモデルから削除された時、このマージアクションをクリックしてターゲットモデル中のそのブロックを削除できます。s
要素の属性がコントリビュータモデル中で変更された時、このマージアクションをクリックしてターゲットモデルに属性変更をコピーできます。
コンフリクトと依存性
同一の要素がターゲットとコントリビュータにおいて変更された場合、これをコンフリクトと言います。これは、コントリビュータ中の変更が適用された場合に、ターゲットモデル中の幾つかの変更が上書きされる可能性を意味しています。
変更の幾つかは、他の変更に依存します。例えば、シグナルを追加するためには、シグナルを接続するブロックが存在しなければいけません。SimMergeは、依存性を理解し、マージアクションの実行時に依存性変更を自動的に適用します。>
変更がコンフリクトする変更に依存している場合、そのマージアクションはオレンジ色で表示されます。それをクリックすると、全依存性マージアクションが適用されます。これは、ターゲットモデル中の変更の幾つかを上書きする場合があります。
変更が実行不可能なマージアクションに依存している場合は、その変更を防止します。手動でモデルを修正して、その変更の適用を試みることができます。終了時に、リフレッシュボタンをクリックして下さい
あなたは、 Dependencies タブを使うことによって、依存する合流点の行動を見ることができます。 依存は木で組織化されます、そしてそこで子供たちは親の前に処刑されなければなりません。
重要:Simulinkにおいてモデルを直接編集した後は、その変更をSimMergeに知らせる必要があります。リフレッシュボタンをクリックして実行して下さい。
SimMergeでは、Simulink要素におけるマージアクションをアンドゥ/リドゥすることができます。当ラボ機能の使用に当たり、制限やガイドラインがあります。例えば、Stateflowの要素におけるマージアクションのアンドゥは、サポートされていません。アンドゥ機能を正確に機能させるためには、下記の状況を避ける必要があります。
- 1 MATLABを閉じる:SimMergeが接続されているMATLABセッションを手動で閉じることにより、アンドゥのデータが損失される場合があります。その結果、次に行われるアンドゥ操作が失敗する場合があります。そのため、MATLABを閉じる場合には、シンクロナイズボタン
をクリックしてから、マージ操作を続行することをお勧めします。 - 2 保存せずにターゲットモデルを閉じる:モデルに保存されていない変更があり、保存せずにモデルを閉じると、次に実行されるアンドゥ操作が失敗に終わる場合があります。そのため、ターゲットモデルを保存せずに閉じる場合は、閉じた直後に、シンクロナイズボタンをクリックすることをお勧めします。
- 3 ターゲットモデルを変更する:ターゲットモデルにおける手動変更は、アンドゥ操作を妨害する場合があります。そのため、モデル変更後は、シンクロナイズをする必要があります。
注意:アンドゥ/リドゥの履歴は、シンクロナイズの完了時に消去されます。
SimMergeは、Stateflow要素のマージもサポートしています。Stateflow要素の位置が動作に影響を及ぼすことがあるため、Stateflowのマージ時には、細心の注意を払う必要があります。必要に応じて、Simulinkと同様、マージアクションを使い、位置を調節することができます。
法律上の通知
SimMerge 3.1 User Manual
Copyright© 2010 EnSoft Corp. 無断複写・転載は禁じられています。著作権法に基づき、EnSoft社の同意書無く当マニュアルの全体及び部分コピー、複製、再配布をする事は禁じられています。ソフトウェアに関する権利は、付属のエンドユーザーライセンス同意書により保護されています。当マニュアル中の情報の正確さを保証するための出来る限りの努力をしています。EnSoft社は印刷エラーや誤記への責任は負いかねます。
EnSoft Corp.
2501 North Loop Drive, Suite 1800
Ames, IA 50010 USA
電話番号: +1-515-296-3253
メールアドレス: contactus@ensoftcorp.com
当書にある全会社名及び製品名は、それぞれの会社の商標です。第三者の製品の言及は情報提供のみを目的とし、支持や推薦ではありません。EnSoft社は、それらの製品の性能や使用に関する責任を負いかねます。
モデルを開く
前の変更
Simulinkウィンドウに要素を表示する
次の変更
変更をマージする
前のコンフリクト
階層マージ- コンフリクトとStateflowを除く、選択された要素と子要素をマージします。/td>
次のコンフリクト
最後に実行されたマージアクションをアンドゥする
現在のSimulink要素に行く
最後に実行されたマージアクションをリドゥする
現在のStateflow要素に行く