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。Subversionの設定ファイルにMPSマージを登録します。MPSはSubversion用に独自のconfigフォルダーを使用することがあるため、2つの異なるチェックボックスがあります。コマンドラインやTortoiseSVNのようなツールからSubversionの手続きを呼び出すときに使われるグローバル設定を更新します。他の1つはMPS Subversionプラグイン専用の設定を変更します。ちなみにMPSで使用されているSubversion config用のディレクトリーはSubversionの設定(英語)で定義できます。

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

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

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

例:

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