MPS 2019.1ヘルプ

バージョン管理

2つのノードを比較

プロジェクト・ビューツールウィンドウ内の任意の2つのノードを視覚的に比較できます。

Diff

標準のVCS比較ダイアログが表示され、相互の違いが視覚化され、簡単に変更できます。

VCSメニュー

VCSメニューには、バージョン管理に関連するコマンドと設定が含まれています。

VCS12

VCS設定

プロジェクト用にVCSを設定するには、環境設定Control + Alt + SまたはCmd + ,)を開いてバージョン管理項目を選択します。

VCS13

とりわけ、使用する個々のバージョン管理システムに対してプロジェクトルートを設定する必要があります。

変更ビュー

下部の変更ビューツールウィンドウ(Alt + 9またはCmd + 9)には、変更されたすべてのファイル/モデルが一覧表示されます。ビューはウィンドウの横にあるボタンを使って設定できます。コンテキストポップアップメニューでは、選択した項目に適用可能な、頻繁に使用されるVCS関連の操作にすばやくアクセスできます。

VCS14

変更ビューログタブはコミット履歴を視覚化します。

VCS15

VCSアドオン

初めてバージョン管理でMPSを開いたり、既存のプロジェクトにVCSマッピングを追加したりすると、グローバル設定をインストールして、いわゆるVCSアドオンをインストールすることができます(メインメニューからインストールすることもできます)。バージョン管理MPS VCSアドオンのインストール。

VCS10

VCSアドオンとは

VCSアドオンは、特別なフック、またはSubversionとGitのマージドライバーであり、特別な種類のファイルのマージメカニズムをオーバーライドします。MPSの場合、これらのアドオンは、モデルファイル(*.mps)と生成されたモデルキャッシュ( 依存関係生成されたファイル、trace.infoファイル、バージョン管理下で保存する場合)のマージを決定します。ファイル変更のマージを伴うバージョン管理手順(ブランチのマージやGitのリベースなど)を呼び出すたびに、これらのフックが呼び出されます。モデルの場合、XMLコンテンツを読み取り、高レベルの「モデル」用語で変更をマージしようとします(無効なXMLマークアップにつながる可能性のあるXMLファイルの行をマージする代わりに)。モデルを自動的にマージできない場合があります。その場合、「競合」状態のままになり、MPSのUIにマージできます。

場合によっては、マージドライバの作業中に、衝突しない変更をすべて適用した後にmodelに同じIDを持つ複数のノードがある場合に、IDの衝突が発生する可能性があります。この状況では、自動マージは実行されません。見つけるのが難しいノードへの参照で問題が発生する可能性があるためです。この場合、自分でマージ結果を調べて、それが問題ないかどうかを判断する必要があります。

モデルキャッシュの場合、マージドライバは別の方法で動作します(もちろん、バージョン管理下に保存する場合)。ジェネレータの依存関係( 生成されたファイル)とデバッガのトレースキャッシュ(trace.infoファイル)はマージ後に消去されるため、対応するモデルを再生成する必要があります。コンパイル時に使用されるJavaの依存関係( 依存関係ファイル)は、マージ後にコンパイルを可能にする単純な共用体アルゴリズムを使用してマージされます。

異なるVCSアドオン

ダイアログを参照してください。

VCS11

インストールできるVCSアドオンにはいくつかの種類があります。それらすべてをインストールすることをお勧めします。

  • Gitのグローバル自動登録設定。作業コピー内のテキストファイルはローカルのシステム依存の行末を使用しますが、gitは標準のUnix行末(LF)でテキストファイルをリポジトリに保存します。あなたのプロジェクトの開発者が異なる行末を持つ異なるオペレーティングシステムを使うときに必要です(WindowsとUnix)。

  • Gitグローバルマージドライバの設定。グローバルGit設定でMPSモデルのマージドライバを登録し、Gitリポジトリの.gitattributesファイルで参照できるようにします(下記参照)。マージドライバ名(この場合は " mps ")を実際のマージドライバコマンドへのパスとマッピングするだけです。

  • リポジトリのGitファイル属性。開いているMPSプロジェクトで使用されているGitリポジトリの具象ファイルタイプ(*.mpstrace.info など )のMPSマージドライバを有効にします。これはGitリポジトリのルートでファイルを作成または修正します。このファイルは通常、バージョン管理下で保存する必要があるため、これらの設定はプロジェクトの開発者間で共有されます。

  • Subversionカスタムdiff3 cmd。MPSマージをSubversionの構成ファイルに登録します。MPSは、Subversionに対して独自の構成フォルダーを使用する場合があるため、2つの異なるチェックボックスがあります。1つは、コマンドラインまたはTortoiseSVNなどのツールからSubversionプロシージャを呼び出すときに使用されるグローバル構成を更新します。もう1つは、MPS Subversionプラグインの構成のみを変更します。MPSで使用されるSubversion configのディレクトリーはSubversionの設定(英語)で定義できます。

マージダイアログでの競合解決

マージの競合はユーザーが手動で解決できます。3ウィンドウのマージダイアログでは、競合するバージョンと手動による競合解決の結果の両方がユーザーに表示されます。コードは両側のウィンドウから移動することも、手動で編集することもできます。

複数カーディナリティーのロールを果たす子供たちにとって、両側のウィンドウから子供たちを加えることができるのは便利です。そのため、競合の一方から変更を適用した後、他の競合する変更は「追加」に変換され、変更されたグループの最後に適用できます。

例:

vcsx1
左側のバージョンの競合を適用した後も、右側から行を適用するか無視することができます。
vcsx2
最終更新日: 2019年7月5日