Skip to content

VCS Integration

LemonTree can be seamlessly integrated into existing versioning systems, such as Subversion, Git or PTC. This enables the centrally and automatic management of model versions. It also enables parallel editing of models in a team, as has for years been a common approach when editing source code. LemonTree for Enterprise Architect is referred to as a Diff & Merge Tool for VCSs as soon as a model is checked into the central repository.

The sub-pages of this page detail the process of integrating LemonTree into a number of existing version control systems.

The help pages are split based on the version of LemonTree you are using. LemonTree 2.6.1 introduces the LemonTree Starter -  an addiitonal executable providing additional features for VCS integration. Therefore, the described VCS integration setups for LemonTree Version 2.6.1 or newer describe how to utilize the LemonTree Starter. You still have the option of invoking LemonTree directly as with previous versions, however.

Command Line Options

LemonTree.exe \[options\]

Command Line Options:

--diff
        interactive diff mode, used to diff certain models

--merge=auto
        automated merge mode. Merges the files when there are no conflicts, starts the UI when there are.

--merge=visual
        visual merge mode. Always starts the UI giving the user an opportunity to override the default merge.

-b, --base=
        the common base version of the models
        other common names $BASE 

-t, --theirs=
        the 'theirs' version of the model, often called 'A'
        other common name: $REMOTE

-m, --mine=
        the 'mine' version of the model, often called 'B'
        other common name: $LOCAL

-o, --out=
        the resulting model, will be overwritten if it exists.
        other common name: $MERGED
 
-w, --wait
        when performing an automatic merge, waits for user confirmation after success/failure when LemonTree didn't start the UI.

Examples

Merge

LemonTree.exe --merge=auto --base="C:\tmp\xx0.eap" --mine="C:\tmp\xx1.eap" --theirs="C:\tmp\xx2.eap" --out="C:\tmp\merged.eap"

Explanation: Attempts to merge xx1.eap with xx2.eap, writing the output to merged.eap. Opens interactive mode if there are conflicts.

3-way comparison

LemonTree.exe --diff --base="C:\tmp\xx0.eap" --mine="C:\tmp\xx1.eap" --theirs="C:\tmp\xx2.eap"

Explanation:  Does a three-way compare of xx0.eap, xx1.eap and xx2.eap.

2-way comparison

LemonTree.exe --diff  --mine="C:\tmp\xx1.eap" --theirs="C:\tmp\xx2.eap"

Explanation: Does a two-way compare of xx1.eap and xx2.eap.  Note that 'base' is set to the same model als 'theirs'.

Using LemonTree with SVN

If you have already installed TortoiseSVN, the corresponding configurations are automatically added when installing LemonTree.

Click here for more information.

Using LemonTree with Git

If you have already installed TortoiseGit, the corresponding hooks are automatically added when installing LemonTree.

If you want to configure LemonTree as external diff & merge tool, please refer to the appropriate sub-page for you used Git Tool(s) and your LemonTree version.

Exit codes

The following exit codes are provided by Lemon Tree:

Code Explanation
-1 Parsing error of comand line parameter
0 Successful merge
1 Reading/interpreting error of config file
2 Diff or premerge error (GUI is not opened, because there's nothing to show)
3 Merge failed
5 GUI has been opened (because of conflicting changes) but closed without merging
6 No valid license found (new since version 1.7.0)