MPS 2020.1 ヘルプ

バージョン管理

VCS メニュー

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

vcs menu

VCS 操作のポップアップAlt+` または VCS | VCS 操作のポップアップ)を使用して、VCS 関連のコマンドをすばやく呼び出します。ポップアップおよびメニューのアクションのリストは、現在有効な VCS によって異なります。

vcs_operations_quick_list.png

VCS アドオン

バージョン管理から MPS に最初にプロジェクトをインポートするか、既存のプロジェクトに VCS マッピングを追加するとき、MPS はいわゆる VCS アドオンをインストールすることを提案します(メインメニューから後でインストールすることもできます:バージョン管理 | MPS VCS アドオンのインストール)。

MPS VCS Add-ons

VCS アドオンは、Subversion と Git の特別なフックまたはマージドライバーであり、特定の種類のファイルのネイティブマージメカニズムをオーバーライドします。モデルファイル(*.mps)および生成されたモデルキャッシュ(依存関係生成されたファイル、および trace.info ファイル)のマージ手順を決定します。VCS に関連する操作(ブランチのマージやリベースなど)を実行するたびに、これらのフックが呼び出されます。

モデルの場合、XML コンテンツを読み取り、.xml ファイルの行を単純にマージするのではなく、「モデル」の観点で、無効なマークアップにつながる可能性のある変更を高レベルでマージしようとします。場合によっては、モデルを自動的にマージできず、競合状態のままになり、手動でマージできます。例:すべての競合しない変更が適用された後、モデルが同じ ID を持つ複数のノードで終わる場合、マージ中に ID の競合が発生する場合があります。この状況では、ノードの参照に課題が発生し、識別が困難になる可能性があるため、自動マージは実行されません。マージ結果をインスペクションし、そのような競合を手動で解決する必要があります。

モデルキャッシュの場合、マージドライバーの動作は異なります。ジェネレーターの依存関係(生成されたファイル)とデバッガートレースキャッシュ(trace.info ファイル)はマージ後にクリアされるため、対応するモデルを再生成する必要があります。コンパイルで使用される Java 依存関係(依存関係ファイル)は、マージ後にコンパイルを可能にする単純なユニオンアルゴリズムを使用してマージされます。

VCS アドオンにはいくつかのタイプがあります。

  • Git のグローバル自動登録設定 : Git がリモートリポジトリに標準の Unix 行末記号(LF)を使用してテキストファイルを保存するようにし、作業コピーのテキストファイルはローカルシステム依存の行末記号を使用します。これは、チームメイトが異なる行末を持つ異なるオペレーティングシステム(Windows と Unix)を使用している場合に便利です。

  • Git グローバルマージドライバの設定 : MPS モデルのマージドライバーをグローバル Git 設定に登録し、.gitattributes ファイルで参照できるようにします。実際のマージドライバーコマンドへのパスを持つマージドライバー名のみをマップします。

  • リポジトリの Git ファイル属性 : 特定のファイルタイプ(*.mps , trace.info など)に対して MPS マージドライバーを有効にします。マージドライバーが認識するように、既存のすべてのファイルタイプをリストするファイルを作成します。設定はチームメンバー間で共有されるため、このファイルをバージョン管理下に置くことをお勧めします。

最終更新日 : 2020 年 6 月 18 日

関連ページ:

依存関係

モデル間の依存関係を管理することは不可欠です。そのトピックに関する情報については、左側のパネルを参照してください。最終更新日 : 2020 年 6 月 18 日テスト言語依存関係を正しくする

ビルド言語

MPS ビルド言語とは何ですか? :ビルド言語は宣言的な方法でビルドを定義するための拡張可能なビルド自動化 DSL です。Antに生成された、Ant の実行機能を活用しながら、ソースをクリーンで無駄のない詳細情報から解放します。一番下に ANT がある MPS 言語のスタックとして編成されているため...

デバッガー

MPSは、カスタムデバッガを作成し、javaのデバッガと統合するためのAPIを提供します。MPSデバッガ機能の説明については、デバッガの使用箇所ページを参照してください。基本、BaseLanguageとその拡張機能のデバッグ - javaデバッガとの統合、javaデバッガ下での実行構成の起動、カス...

1 つの Git ブランチから別の Git に変更を適用する

Git では、あるブランチから別のブランチへの変更をブランチのマージ、ブランチのリベース、またはあるブランチから別のブランチに別々のコミットを適用する (チェリーピック)に統合するいくつかの方法があります。MPS では、ブランチのすべての操作はGit ブランチポップアップで実行されます : こ...

競合の解決

バージョン管理システムによっては、状況によっては競合が発生することがあります。チームで作業をしているとき、誰かが現在取り組んでいるファイルへの変更をコミットするという状況に遭遇するかもしれません。これらの変更が重複しない場合(つまり、異なるコード行に変更が加えられた場合)、競合するファイルは自動的に...

バージョン管理を有効にする

MPS は 2 つのレベルでバージョン管理統合をサポートします。IDE レベルでは、VCS 統合は、デフォルトで有効になっているバンドルされたプラグインのセットを通じて提供されます。プロジェクトレベルでは、プロジェクトフォルダーを 1 つまたは複数のバージョン管理システムと関連付けることで、VCS