LemonTree Git, Subversion操作方法

ここでは、LemonTreeを利用したGit、Subversion(SVN)の操作方法についてご紹介します。

操作例は、LemonTree 3.3.1、TortoiseGit Client 2.11、TortoiseSVN Client 1.14 を利用しています。

※LemonTreeを使ったGitFlowにつきましては、開発元サイト(英語)をご覧ください。
※Gitリボジトリの肥大化対策の一例につきましては、こちらをご覧ください。


[Git] EAでコミット

LemonTree EA Addinを利用して、EAでGit操作をすることができます。
(アドインはLemonTreeインストーラに同梱されています)

Git Clientでローカルリポジトリ、リモートリポジトリが設定されていれば、LemonTree EA Addinはその設定を利用して、EAからGit操作をすることができます。

LemonTree EA Addinは、EAの「トレーサビリティマップアドイン」「拡張マトリックスアドイン」「Excel出力アドイン」が動作しなくなるという既知の問題があります。そのため、これらのアドインの同時利用をご希望のお客様は、問題回避用アドインを配布しますのでサポートまでご連絡ください。



以下、複数人でモデルを同時編集したケースを例に、Git操作をご説明します。

コミットとプッシュをするため、LemonTree EA Addinで「Git Commit and Push」を選択します。


モデルを保存するため「Yes」をクリックします。


コミットのコメントを入力します。


他者がモデルを更新していてプッシュできないため、「Pull」をクリックします。


LemonTreeでマージするため「Continue」をクリックします。


LemonTreeでモデル上の差分を確認しています。


<モデル上の競合がない場合>
 自動でマージが完了します。


<モデル上の競合がある場合>
 LemonTreeが起動して差分表示されます。

 マージ内容を調整し「Start Merge」でマージして、LemonTreeを終了します。


モデルのマージができたので、コミットとプッシュをするために
「Commit and Push」をクリックします。


コミットのコメントを入力します。


コミットとプッシュが完了しました。



[Git] Gitクライアントでコミット

複数人でモデルを同時編集したケースを例に、Git操作をご説明します。

EAPX/QEAXファイルを選択してGitプッシュ時に競合が発生すると
下記画面となりますので「プル」をクリックします。


「競合の解決」をクリックします。


競合しているファイル名をダブルクリックします。(LemonTreeがモデルのマージを実行します)
※ダブルクリックせずに「OK」をクリックしてしまうと、モデルのマージは実行されず、
 ローカルのモデルでコミットとなりますのでご注意ください。



LemonTreeがモデル上の差分を確認します。


<モデル上の競合がない場合>
 自動でマージが完了します。

 ※自動マージは行わず、常にLemonTreeの差分画面を表示したい場合はこちらをご覧ください。

<モデル上の競合がある場合>
 LemonTreeが起動して差分表示されます。

 マージ内容を調整し「Start Merge」でマージして、LemonTreeを終了します。


モデル上の競合を解決したので、「OK」をクリックします。


「コミット...」をクリックします。


コミットしてプッシュします。



[Git] ブランチ間の比較

EAPX/QEAXファイルのコンテキストメニュー > TortoiseGit > リビジョングラフ を選択します。


比較したいブランチを2個選択し、コンテキストメニュー > リビジョンの比較 を選択します。


画面下段に表示されいてるEAPX/QEAXファイルをダブルクリックします。
→LemonTreeが起動してブランチ間の差分が表示されます。



[Git] 自動マージの停止

自動マージは行わず、常にLemonTreeの比較画面を表示することもできます。設定手順は以下のとおりです。

TortoiseGitの設定画面で、差分ビューアー > マージツール を選択して「高度な設定」クリックをします。


バージョン管理しているEAの拡張子を選択して「編集」をクリックします。
(拡張子ごとに行なう必要があります)


外部プログラムの「--merge=auto」を「--merge=visual」に書き換えて「OK」をクリックします。


[SVN] コミット

複数人でモデルを同時編集してコミット時に競合が発生したケースを例に、SVN操作をご説明します。

コミット時に競合が発生すると下記画面となりますので「OK」をクリックします。


「更新」をクリックします。


競合の行をダブルクリックします。(LemonTreeがモデルのマージを実行します)


LemonTreeがモデル上の差分を確認します。


<モデル上の競合がない場合>
 自動でマージが完了します。


<モデル上の競合がある場合>
 LemonTreeが起動して差分表示されます。

 マージ内容を調整し「Start Merge」でマージして、LemonTreeを終了します。


モデル上の競合を解決したので、競合の行のコンテキストメニューより「解決済みとみなす」を選択します。


コミットして完了です。



[SVN] ブランチ間の比較

EAPX/QEAXファイルのコンテキストメニュー > TortoiseSVN > リビジョングラフ を選択します。


比較したいブランチを2個選択し、コンテキストメニュー > リビジョンの比較 を選択します。
→LemonTreeが起動してブランチ間の差分が表示されます。