LemonTree モデルの不整合

LemonTreeで比較実行時に以下のような「Model inconsistencies found」が表示されることがあります。



これはモデルに不整合があることを示しており、主な原因として以下が挙げられます。


モデルの不整合は、LemonTreeの差分比較・マージに影響を与える可能性がありますが、多くの場合で差分比較・マージの結果に大きな影響を与えることはありません。

差分比較を継続したい場合は、上記画面で「Confirm and continue」をクリックしてください。
モデルの不整合を解決したい場合は、以下の方法をお試しください。


LemonTreeの不整合検知レベルを変更することもできます。変更方法につきましてはマニュアルをご覧ください。



上記以外のモデル不整合に関する情報は以下のとおりです。


モデル不整合の主な原因

異なるバージョンのEAを使用して同じモデルを編集している

一度新しいバージョンのEAで開いたプロジェクトには、新しいバージョンで追加された情報(例えば追加のオプション設定)が保存されます。また、バージョンによっては内部の保存情報・形式が変更される場合があります。そのため、異なるバージョンで同じモデルを編集すると不整合が発生することがあります。



EAのXMIエクスポート/インポート機能を利用している

エクスポート時に対象のパッケージ内に他のパッケージを参照する情報があると、その参照情報もエクスポートされます。これはインポートしたときにエクスポートしたときと同じモデルにするためです。そのためインポートで他のパッケージ側に参照対象がない場合でも、参照情報としては残ります。その参照情報がLemonTreeがチェックする情報の場合に、モデルの不整合となることがあります。



モデル内の2つの異なる要素が同じGUIDを持つ

何らかの理由でモデル内の2つの異なる要素が同じGUIDを持っていると、モデルの不整合となります。「Fatal Inconsistencies」と表示されることがあります。


EAの整合性確認

不整合があるかチェックするために、EAの整合性確認を「結果のみ」で実施します。
もし不整合があれば、「修復」で再度実行します。

※整合性確認については、ヘルプの以下をご確認ください。
  プロジェクトファイルとリポジトリの管理 > プロジェクトの管理 > プロジェクトの整合性確認

※「修復」はモデルを変更しますので、実行前に必ずバックアップを取得してください。


手動で対応

LemonTreeで検知するモデルの不整合の種類として、開発元が公開しているこちらの表をご確認ください。(不整合のログについては、上記画面で「Details」をクリックすると確認できます)

「Found By EA Integrity Check」欄で「yes」の項目については、EAの整合性確認で解決できます。
「no」の項目については、「Solution」欄をご確認ください。

  • 注釈2:LemonTreeのマージで自動的に解決されます
  • 注釈3:開発元が提供している専用ツールで解決できます
  • 上記以外:「Solution」欄の手順をお試しください


ベースモデルの対応

3-wayマージを実行するときに、ベースモデルに不整合がある場合があります。通常は前述までの解決方法で対応できますが、バージョン管理システムを利用している場合は、開発元が公開している追加の手順が必要となります。


マージで自動解決

不整合の内容によっては、LemonTreeのマージ中に自動解決されることがあります。自動解決の対象については、開発元が公開しているこちらの表で、「Solution」欄に注釈2が記載されているものになります。(不整合のログについては、上記画面で「Details」をクリックすると確認できます)


LostAndFound

LemonTreeでマージしたときに、以下のような「LostAndFound」というプロジェクトルートが作成されることがあります。


これは、何らかの理由で要素の親パッケージが見つからないとき、などに作成されます。親パッケージが存在しない要素はEAのモデルブラウザで確認できないため、LemonTreeが独自に親パッケージ「LostAndFound」を作成し、その要素を配置しています。

「LostAndFound」の対応方法としては、配下の要素が必要であれば適切なパッケージの配下に移動してください。その後に「LostAndFound」を削除してください。