MPS 2020.3 ヘルプ

バージョン管理

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 ファイル属性 : 特定のファイルタイプ(*.mpstrace.info など)の MPS マージドライバーを有効にします。マージドライバが認識できるように、既存のすべてのファイルタイプを一覧表示するファイルを作成します。構成はチームメンバー間で共有されるため、このファイルをバージョン管理下に置くことをお勧めします。

ignore ファイル

MPS モデルを VCS に保存するための 2 つの戦略があります。

  • 重要な MPS プロジェクト構成ファイル( workspace.xml ファイルを除く .mps フォルダー)とプロジェクトソース(msd、mpl、mps ファイルタイプなどのモデルファイル)のみをバージョン管理下に置くこと。

  • 生成されたコードも追加で含めます。

生成されたコードが VCS に含まれているため、変更をコミットする前にモデルを再生成することを忘れないでください。

例: workspace.xml を除外する典型的な .gitignore ファイルである Git を使用する場合、生成されたファイルと実行中のテストの典型的な副産物は次のようになります。

workspace.xml junitvmwatcher*.properties build.properties # generated java classes and java source files # manually add any custom artifacts that can't be generated from the models # http://confluence.jetbrains.com/display/MPSD25/HowTo+--+MPS+and+Git classes_gen source_gen source_gen.caches # generated test code and test results test_gen test_gen.caches TEST-*.xml junit*.properties

関連ページ:

依存関係

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

ビルド言語

MPS ビルド言語とは何ですか? :ビルド言語は宣言的な方法でビルドを定義するための拡張可能なビルド自動化 DSL です。Ant に生成された、Ant の実行機能を活用しながら、ソースをクリーンで無駄のない詳細情報から解放します。一番下に ANT がある MPS 言語のスタックとして編成されているため、ビルド手順の各部分を異なる抽象化レベルで表現することができます。(MPS プラグインのような)複雑なアーティファクトを構築することは、言語の慣習に従えば、たった 1 行のコードで指定できますが、同時...

デバッガー

MPS は、カスタムデバッガーを作成し、java のデバッガーと統合するための API を提供します。MPS デバッガー機能の説明については、デバッガーの使用箇所ページを参照してください。基本、BaseLanguage とその拡張機能のデバッグ - java デバッガーとの統合、java デバッガー下での実行構成の起動、カスタムビューアー、カスタムデバッガーの作成、トレーサブルノード、ブレークポイントクリエーター、基本ユーザーモデルから生成されるコードをデバッグするために、MPS は以下をする必...

ある Git ブランチから別の Git への変更を適用する

Git では、あるブランチから別のブランチへの変更をブランチのマージ、ブランチのリベース、またはあるブランチから別のブランチに別々のコミットを適用する (チェリーピック) に統合するいくつかの方法があります。MPS では、ブランチのすべての操作は Git ブランチポップアップで実行されます: これを呼び出すには、ステータスバーの Git ウィジェットをクリックします(現在チェックアウトされているブランチの名前が表示されます)。ブランチのマージ:特定のタスクを処理する機能ブランチを作成し、その機能を...

競合の解決

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

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

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