MPS 2019.2ヘルプ

バージョン管理

VCSメニュー

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

vcs menu

Use the VCS 操作のポップアップ ( Alt+` or VCS | VCS 操作のポップアップ ) to quickly invoke any VCS-related commands. The list of actions in the popup and menu depends on the currently enabled VCS.

vcs_operations_quick_list.png

VCSアドオン

When you first import a project to MPS from a version control, or add VCS mapping for an existing project, MPS suggests installing the so-called VCS Add-ons (they can also be installed later from the main menu: バージョン管理 | MPS VCS アドオンのインストール ).

MPS VCS Add-ons

VCS Add-ons are special hooks or merge drivers for Subversion and Git that override the native merging mechanism for specific types of files. They determine the merging procedure for model files ( *.mps ) and generated model caches (dependencies, generated and trace.info files). Every time you perform a VCS-related operation (like merge or rebase branches), these hooks are invoked.

For models, they read their XML content and tries merging the changes on a high level, in “model” terms instead of simply merging lines of an .xml file which may lead to invalid markup. Sometimes, models cannot be merged automatically, and then they stay in the conflicting state and can be merged manually. For example, id conflicts may occur during the merge when a model ends up with more than one node with the same id after all non-conflicting changes have been applied. In this situation, no automatic merge is performed because it may lead to issues with nodes references which are then hard to identify. You need to inspect merge results and manually resolve such conflicts.

For model caches, merge drivers work differently. Generator dependencies (generated files) and debugger trace caches ( trace.info files ) are cleared after the merge, so you will need to regenerate the corresponding models. Java dependencies (dependencies files) used on compilation are merged using a simple union algorithm which makes compilation possible after the merge.

There are several types of VCS Add-ons.

  • Gitのグローバル自動登録設定 : forces Git to store text files with the standard Unix line endings (LF) in the remote repository, while text files in the working copy use local system-dependent line endings. This is handy if your teammates use different operating systems that have different line endings (Windows and Unix).

  • Gitグローバルマージドライバの設定 : registers the merge driver for MPS models in the global Git settings, so that they can be referred to in the .gitattributes files. It only maps the merge driver name with the path to the actual merge driver command.

  • リポジトリのGitファイル属性 : enables the MPS merge driver for specific file types ( *.mps , trace.info , etc). It creates a file listing all existing file types so that the merge driver is aware of them. It is recommended to keep this file under version control, as the configuration will be shared among your team members.

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

関連ページ:

依存関係

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

ビルド言語

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

デバッガー

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

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

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

競合の解決

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