MPS 2019.2ヘルプ

バージョン管理

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マージドライバーを有効にします。マージドライバーが認識するように、既存のすべてのファイルタイプをリストするファイルを作成します。設定はチームメンバー間で共有されるため、このファイルをバージョン管理下に置くことをお勧めします。

最終更新日: 2019年8月30日

関連ページ:

依存関係

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

ビルド言語

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

デバッガー

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

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

Gitでは、あるブランチから別のブランチへの変更をブランチのマージ、ブランチのリベース、またはあるブランチから別のブランチに別々のコミットを適用する (チェリーピック)に統合するいくつかの方法があります。ブランチのマージ:特定のタスクを処理するための機能ブランチを作成し、その機能を完成してテストした...

競合を解決

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

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

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