メインコンテンツまでスキップ

マージ時のエラー対処例

基本的には、同じフィールド値の変更同士やモデルの削除がコンフリクトするとエラーとなります。多くの場合は下記に示すような対処方法でエラーを解消することができます。

エラーの対処例

対処例一覧

  • 対処例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をマージした時にエラーが発生した場面を想定します。

base

対処例1 : 該当ブランチ同士でモデルの値を同じにする

ブランチ間で衝突した値を同じ値に修正することで、マージできるようになります。例えば、下記のように対処します。

  • モデルのフィールド値について、ownブランチの値をotherブランチのフィールド値と同じにします。
  • モデルのフィールド値について、otherブランチの値をownブランチの値と同じにします。
  • 該当モデルが削除されていないブランチにて、該当モデルを削除します。

case01

対処例2 : 該当モデルを編集したリビジョンを戻しマージする

ブランチ間で衝突しないリビジョンまで戻しマージします。続けて戻した点を意図する通りに反映しなおします。 例えば、下記のように対処します。

  • 該当モデルが削除されたリビジョンを取り消し戻したうえでマージします。

case02

対処例3 : 該当ブランチの内容を整合するよう手動で反映する

現在のブランチ(own)に指定した他ブランチ(other)の内容を意図通りになるよう手動で反映しなおします。 例えば下記のように対処します。

  • ownブランチはそのままに、otherブランチの変更を一つ一つownブランチへ反映します。

case03

具体的な対処手順の例

対処例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)フィールドの値を書き換えます。

    form

関連項目