マージによるエラー
マージ時にコンフリクト(衝突)やモデルの不整合を検出した場合にエラーを表示します。エラー発生のポイントは下記の2つです。
- マージ開始時
- マージ中
各々の詳細を下記に示します。
マージ開始時のエラー
- 現在のブランチ(own)において未コミットの変更がある場合にエラーとなります。
- 未コミットのデータを上書きしてしまわないようGit本体の仕組みによりコンフリクトが検出され、エラーを表示します。
マージ中のエラー
- マージ中にエラーを検出した場合にエラーとなります。
- この場合、
NDMerge
はマージ処理を中止します。
- この場合、
- マージ中のエラーは大きく分けて下記の2つがあります。
- 編集によるコンフリクトエラー
- モデルの不整合によるエラー
- それぞれのエラーにおけるメッセージについては、こちらを参照してください。
編集によるコンフリクトエラー
- 個々のモデルへの編集によりコンフリクトが発生する場合、エラーとなります。
- マージ対象によってコンフリクトとなる条件が異なります。対象ごとのコンフリクト条件を下記に示します。
対象 | 内容 |
---|---|
ファイル | ファイルのスキーマバージョンが衝突(注1) |
エンティティや関連 | フィールド値の変更同士が衝突 |
モデルの削除と、そのモデルのフィールド値の変更が衝突 | |
親モデルの削除と、子モデルのフィールド値の変更が衝突 | |
インタラクションモデル | インタラクション要素の変更が衝突(注2) |
プロダクトラインのモデル | フィーチャモデルの編集が衝突 |
フィーチャ割り当て(フィーチャ式)が衝突 | |
コンフィグレーションの変更が衝突 | |
フィーチャ間の制約の衝突 | |
プロファイル | プロファイルの変更内容が衝突(注3) |
プロジェクト | プロジェクト情報(概要やカテゴリなど)の変更が衝突 |
トレースページの設定情報の変更が衝突 (系列の設定情報、トレース網羅率の計算対象外の一覧情報が該当します) |
- 注1 : ファイル単位で保持するスキーマバージョンのアップデートがあった場合、衝突と扱われます。
- 注2 : ライフラインやメッセージなどの変更が1つ以上ある場合、変更があったと扱われます。またインタラクションモデル=シーケンス図では、シェイプの座標情報も設計データとして扱うため、座標の変更もコンフリクト対象となります。
- 注3 : プロファイルの要素は、メタモデル、ビュー定義、画像などのリソース、クラス図の内容が該当します。それらについて追加・削除、変更が1つ以上ある場合、変更があったと扱われます。
モデル不整合によるエラー
- コンフリクトなくマージした結果として、下記のようなモデルの不整合状態があればエラーとなります。
- 所有関連が循環参照となってしまう
- 親が複数となってしまう