You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/en/docs/refguide/version-control/using-version-control-in-studio-pro/merge-algorithm.md
+20-17Lines changed: 20 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,23 +21,23 @@ Both options support the following features when it comes to [resolving the conf
21
21
22
22
* Fine-grained conflict resolution – When there are conflicting changes in a document, you do not have to choose between whole documents, resolving a conflict using your change or using their change. Instead, you can resolve conflicts at the level of individual elements, such as widgets, entities, attributes, or microflow actions. All non-conflicting changes from both sides are accepted automatically.
23
23
* No conflicts on changes to lists of widgets – When two developers make changes to widgets in the same document there is no conflict, the changes are combined. However, if the changes are made too close to the same place in the document, a list order conflict is reported that reminds the developer who is merging the changes to decide on the final order of the widgets in the list.
24
-
*Can be aborted at any time. Studio Pro will continue from your latest local commit.
24
+
*They can be aborted at any time. Studio Pro will continue from your latest local commit.
25
25
26
26
The differences between the two approaches are as follows:
27
27
28
-
* Rebase (*default*):
29
-
* Treats changes from the server as leading, by first retrieving the server state and then reapplying your work to it.
28
+
* Rebase (default):
29
+
* Treats changes from the server as leading, by first retrieving the server state, and then reapplying your work to it.
30
30
* Results in a simple commit history.
31
-
* Resolves conflicts when reapplying your local commits. If you have 3 local commits, this could trigger conflict resolution 3 times.
31
+
* Resolves conflicts when reapplying your local commits. If you have three local commits, this could trigger conflict resolution three times.
32
32
* Merge commit:
33
-
* Treats local and remote changes equally, and combines them in a separate 'merge commit'.
33
+
* Treats local and remote changes equally, and combines them in a separate merge commit.
34
34
* Results in a more complicated commit history with extra merge commits.
35
35
* Resolves conflicts once, regardless of the number of local and remote commits being merged.
36
36
37
37
{{% alert color="info" %}}
38
38
In general, Mendix recommends using the Rebase strategy when combining changes, especially when actively collaborating on the same branch.
39
39
40
-
In exceptional cases, for example when you have a lot of local commits where you expect conflicts, a merge commit might be the better choice.
40
+
In exceptional cases, for example when you have a lot of local commits where you expect conflicts, a merge commit may be the better choice.
41
41
{{% /alert %}}
42
42
43
43
Both processes are guided by [notification controls](#notifications) showing the actual state and possible next steps.
@@ -48,33 +48,36 @@ The clearest way to explain and illustrate the differences between Rebase and Me
48
48
49
49
### Starting Point
50
50
51
-
There are two entities `User` and `Game` which you have added to the domain model of your project.
51
+
To start this scenario, let us assume that you have added the following entities to the domain model of your project:
52
52
53
-
The User entity includes string attributes `E_mail` and `Second_E_mail`.
53
+
*`User`
54
+
*`Game`
55
+
56
+
The User entity includes the string attributes `E_mail` and `Second_E_mail`.
In the meantime, your colleague also decided to make some changes to both email fields. They have renamed `E_mail` to `EmailAddress` and removed `Second_E_mail` entirely. These changes have been pushed to the server.
74
+
In the meantime, your colleague also decided to make changes to both email fields. They have renamed `E_mail` to `EmailAddress` and removed `Second_E_mail` entirely. They have then pushed their changes to the server.
The current situation could be represent as shown below.
80
+
The current situation could be represented as shown below.
78
81
79
82
{{< figure src="/attachments/refguide/version-control/using-version-control-in-studio-pro/merge-algorithm/Steps/Rebase_Starting_state.png" alt="Team Server with three commits (1, 2, and 4), while in Studio Pro there are also three commits (1, 3, and 5)" width="525" >}}
0 commit comments