14

数人の開発者からなるチーム内で、モデル開発 (および Real-Time Workshop オートコーディング) に Matlab Simulink を使用しています。

私たちは現在、バージョン管理に Visual Source Safe を使用しており (はい、それがひどいことはわかっています)、競合する変更を防ぐためにロックを使用しています。

プログラムを別のバージョン管理システム (svn、hg、または git) に移行したいのですが、Simulink .mdl ファイルでのマージと差分の実行について懸念があります。

Simulink ファイルでマージを実行した経験のある人はいますか?

4

8 に答える 8

6

Simulinkモデルファイルのテキストマージは困難になります。これは、Simulinkを使用する際の構成管理に関する情報を提供する記事です。

差分に関しては、私がR2008b +を信じていることから、SimulinkReportGeneratorに差分ツールがあります。その機能のドキュメントへのリンクは次のとおりです。

マイク

于 2009-11-24T15:14:50.487 に答える
3

前述のように、MathworksはSimulinkの差分ツールに取り組んでおり、基本的にそれらをXMLファイルにエクスポートしてから比較します。これが既存のバージョン管理システムよりもファイルのマージに役立つとは思いませんが。

私はMATLABコードとSimulinkモデルにMercurialを使い始めました。かなり大きなSimulinkモデルではうまく機能しますが、単一の開発者として、複雑なマージをまだ処理する必要はありません。単純な差分とマージは通常、構文の変更にすぎないいくつかの競合、通常は日付スタンプとバージョン番号をスローします。

私の提案は、可能であれば、モデル参照を使用することです。私は、モデル参照を使用して基本的に6つのサブモデルをリンクする大きなモデルを持っています。各サブモデルはバージョン管理下にあり、1人の開発者のみがサブモデルを担当します。その後、異なるSimulinkモデルをマージする際の多くの問題を回避します。

于 2009-11-25T12:24:56.383 に答える
3

DiffPlug は Simulink ファイルをグラフィカルに比較でき、SVN と Git に統合されます。コマンド ライン インターフェイスがあるので、おそらく SourceSafe と統合することもできます...

http://www.diffplug.com/products/dp.simulink.differ

于 2012-11-13T00:23:55.967 に答える
3

Mathworksは、R2011b の新機能であるSimulink Projectsの使用を推奨しています。詳細については、Seth on Simulink ブログを参照してください。

Simulink プロジェクトは、MATLAB/Simulink をバージョン管理システムと統合し、追加機能を提供します。

Simulink のマージに関する限り、現在のベスト プラクティスは可能な限り回避することだと思います。これは、必要に応じてモデル参照とライブラリ リンクを使用して行うことができ、各構成アイテムが十分に小さくなるようにします。

于 2011-11-02T11:33:01.507 に答える
2

Xilinx has recently published an app note detailing how to configure Subversion with SimDiff and SimMerge for team-based development of Simulink models.

From the app note:

"This application note provides an overview on how to perform source version control and team-based design using the System Generator tool. These tasks can be accomplished using the version control features native to the MATLAB®Simulink® software environment, or with an external source control system. While this application note focuses on Subversion, a well-known, free, open-source control system, other version control software such as CVS, MS Source Safe, and Clear Case can also be used—depending on the design environment. This application note also demonstrates how to graphically compare and merge model-based designs using the SimDiff and SimMerge external software packages from Ensoft."

于 2010-03-17T10:16:30.960 に答える
1

私は特別な経験はありませんが、svnは非テキストファイルをうまく処理します。2つのオプションがあります。

  1. mdlファイルがまだバイナリでない場合(Simulinkを使用してからかなりの年月が経ちました)、auto-props機能を使用するか、またはによってmdlファイルのファイルsvn:mime-typeプロパティを「application/octet-stream」に設定します。 svnpropsetを使用してプロパティを手動で設定します。マージは試行されず、チェックインが競合する場合は、違いを解決するためにオペレーターのアクションが必要になります。
  2. VSSのようにリポジトリをロックするように設定します(炎を出さないでください)。ここに素晴らしいステップバイステップガイドがあります。
于 2009-11-24T19:15:41.920 に答える
1

http://www.ikv.de/mediniunite/をご覧ください。問題の解決に役立つかもしれません。medini unite では、Matlab/Simulink/Stateflow 用の便利な Diff/Merge ツールを提供しています。これは非常に使いやすく、もちろんさまざまなバージョン管理システム内で統合できます。

于 2010-01-20T11:15:55.083 に答える