Skip to main content

Developing an Application

 

OutSystems

Resolve Merge Conflicts

When you and other developers work in the same module and change the same elements, OutSystems cannot automatically merge the work for you. This is because OutSystems finds changes in the same elements, and cannot choose which one to publish. It's called a conflict, and you have to resolve it manually, choosing which changes to publish.

To avoid conflicts, it is advisable to plan the work ahead and distribute it well, keeping away from overlapped work between developers.

The image above illustrates a situation of conflicts:

  1. The other developer opens version 4 of the module in his development environment. He starts developing;

  2. You open version 4 of the module in your development environment. You start developing;

  3. The other developer publishes his changes;

  4. You publish your changes:

    1. OutSystems determines that there are changes to be merged based on the version from where both started developing (V4);

    2. The Modified version detected window is displayed, and you choose Merge and Publish;

    3. There are conflicts because you have changed some elements that the other developer also changed;

    4. The OutSystems displays the Compare and Merge window. Selects the non-conflicting changes for you, but you have to decide which conflicting changes you want to keep.

In a conflict, you have to choose between publishing your changes or the changes of the other developer. Normally, you keep the other developer's changes, because you know what you did and you can replicate it. However, you can always discuss it with the team and decide which changes to keep.

Example

As an example, imagine a Contacts application with two developers working on it: Matt Jones and you. The tasks to perform are the following:

  • Matt's job is to work on the usability of the contact list screen.

  • You are going to add a list of contacts to the company detail. But you decide to add the company to the contact list screen, not realizing that Matt is also working there.

You both open the module locally and start working. Matt publishes his changes first. When you publish yours, the Modified version detected window is displayed. After you click the Merge and Publish button, the Compare and Merge window shows conflicts, highlighted in red:

To resolve the conflicts, follow these steps:

  1. Double-click on the Contact_List screen to compare the changes that you and Matt introduced:

    Using the arrows, browse through all differences on the screen.

  2. You can see that Matt has changed the contacts list screen a lot. In this case, you decide to keep Matt's changes and then add yours afterwards.
    You select the checkbox next to the Contacts screen under The other version;

  3. Push the Merge button to merge the selected changes;

  4. Replicate your changes to the contacts list screen manually, and publish the work again. This time, the module is published without the need of more merges because you already have Matt's version in your module.

  • Was this article helpful?