Getting Started

1. Select a Mode

Comparison: when you simply want to compare two models without merging changes. This mode disables the merge buttons in SimDiff so you cannot accidentally modify your models.

Merge: this mode allows you to merge changes from one model to another.

2. Select Models to Compare/Merge

Depending on the mode you choose there are up to four different models that SimDiff will use:

Left Model: the model that you modified or local copy.

Right Model: the model someone else modified or copy in the repository.

Base Model: The most recent common ancestor of the left and right models. This is optional and it's only used for three-way comparison or merge.

Output Model: When in "Merge" mode, you can optionally specify a fourth optional output model. Otherwise, merge results will be saved to the left model.

3. Begin Comparison or Merge

After choosing a mode and specifying your models click on the Start button.

3-way vs 2-way Comparison and Merge

A 3-way comparison is more exact than a 2-way comparison because it tells the user how models were changed, not just how they differ. As a consequence, 3-way merging is more reliable than 2-way merging. The only difference is that 3-way comparison makes use of a common ancestor. Let’s look at a simple example.

Suppose that the model above was modified by two users resulting in the two models below.

A 2-way comparison of the models can just tell whenever two elements are same or different. Without examining the original model there is no way of knowing if D was added to Model 1 or if D was deleted from Model 2. SimDiff's 2-way comparison approach always assumes the change occurred in the right model. Therefore, in the above example it will report D as deleted. During the merging stage, it is the user responsibility to decide whether D should be deleted or kept in the merged model. Note that in all 2-way merge tools the resulting merged model will be determined by user decisions during the merging process.

In contrast a 3-way comparison will examine the original model (the common ancestor) along with the two models to be compared to tell us how the models were changed.

With this information it is straightforward to produce the merged model below.