マージ時のエラー対処例
基本的には、同じフィールド値の変更同士やモデルの削除がコンフリクトするとエラーとなります。多くの場合は下記に示すような対処方法でエラーを解消することができます。
エラーの対処例
対処例一覧
- 対処例1:該当ブランチ同士でモデルの値を同じにしマージする。
- 該当モデルを削除していないブランチにて、該当モデルを削除する等
- 対処例2:該当モデルを編集したリビジョンを戻しマージする。
- 該当モデルを削除していないリビジョンに戻す等
- 対処例3:該当ブランチの内容を整合するよう手動で反映する。
エラーコードと対処例の対応
エラーメッセージで示したエラーコードと対処例の対応を表で示します。参考にエラーを解消してください。
エラーコード | 対処例 |
---|---|
e0001 | 対処例2 |
e1001 | 対処例1~3 |
e1002 | 対処例2~3 |
e2001 | 対処例1~3 |
e2002 | 対処例2~3 |
e3000 | 対処例2 |
e4001 | 対処例1~3 |
e4002 | 対処例1~3 |
e4003 | 対処例1~3 |
e4004 | 対処例2 |
e5000 | 対処例2 |
e6001 | 対処例1~3 |
e6002 | 対処例1~3 |
e6003 | 対処例1~3 |
e9001 | 対処例1~2 |
e9002 | 対処例1~2 |
上記には、要素のIDが変わってしまうことが無いような対処例を例示しています。
対処例のイメージ
下図のように現在のブランチ(own)と指定した他ブランチ(other)で並行して開発が進み、ある時点でownにotherをマージした時にエラーが発生した場面を想定します。
対処例1 : 該当ブランチ同士でモデルの値を同じにする
ブランチ間で衝突した値を同じ値に修正することで、マージできるようになります。例えば、下記のように対処します。
- モデルのフィールド値について、ownブランチの値をotherブランチのフィールド値と同じにします。
- モデルのフィールド値について、otherブランチの値をownブランチの値と同じにします。
- 該当モデルが削除されていないブランチにて、該当モデルを削除します。
対処例2 : 該当モデルを編集したリビジョンを戻しマージする
ブランチ間で衝突しないリビジョンまで戻しマージします。続けて戻した点を意図する通りに反映しなおします。 例えば、下記のように対処します。
- 該当モデルが削除されたリビジョンを取り消し戻したうえでマージします。
対処例3 : 該当ブランチの内容を整合するよう手動で反映する
現在のブランチ(own)に指定した他ブランチ(other)の内容を意図通りになるよう手動で反映しなおします。 例えば下記のように対処します。
- ownブランチはそのままに、otherブランチの変更を一つ一つownブランチへ反映します。
具体的な対処手順の例
対処例1について、具体的な対処手順を示します。
1.エラー内容を確認する
// Descriptionフィールドの値が衝突した場合のエラーメッセージ例
[ERROR:e1001] Model "追従走行" is conflicted.
File : UseCaseModel-A.nmdl
Id : dfeab440-43ff-47d3-aec0-887e82b5e746
"Description" field is conflicted : own is "XXする", other is "YYする".
- 上記は、任意のフィールドの値変更が衝突した場合の例を想定します。
- エラー内容では「追従走行」という名前のモデルにコンフリクトがあったことを示しています。
- 加えて
Description
フィールドの値の変更がコンフリクトしていることを示しています。- ownブランチでは、「XXする」という値に変更しています。
- otherブランチでは、「YYする」という値に変更しています。
- これをコンフリクトなくマージできるようにするには、ownブランチもしくはotherブランチの値に揃える必要があります。
2.修正したいモデルを特定する
エラー内容を確認したら、修正対象のモデルを特定します。モデルの特定にはエラー内容のId
を利用してください。
- モデルファイルを開き、モデルの
Id
で検索して特定します(JSON形式のファイルのみ可能です)。
3.モデルの値を衝突しないよう修正する
修正したいモデルを特定したら、下記のように修正します。
a) JSONフォーマットのファイルの内容を直接修正する
ownブランチで下記のようになっている場合、
Description
フィールドの値をotherブランチの値である「YYする」に書き換えます。{
"Id": "dfeab440-43ff-47d3-aec0-887e82b5e746",
"EntityType": "Entity",
"Name": "追従走行(ADAPTIVE)",
"MetamodelId": "122fabe8-c00b-422d-be66-59e86fd79d1b",
"Metamodel": "ユースケース",
"Fields": {
"Name": "追従走行(ADAPTIVE)",
"Description": "XXする", // 「YYする」に書き換えます
}
},b) エディタで該当モデルの該当フィールドの値を修正します。
例えば、該当モデルの
詳細
ビューを表示し、説明(Description)
フィールドの値を書き換えます。