Collaborative Development

Last update: Download PDF Edit

1 Introduction

Collaborative development is the process of sharing app model changes when a team of more than one person is working on the app. Collaborative development allows the team members to work together on one project in the Desktop Modeler and the Web Modeler and easily synchronize changes using version control. The Desktop Modeler can be used to work on different branches of an app, while the Web Modeler can be enabled for one of these branches.

Collaborative development is enabled by default for new apps created via the Developer Portal, while for projects created in Mendix version 7.23.2 and below you might need to enable the Web Modeler in the Developer Portal. For more information, see Migration From the Sync Process to Collaborative Development.

2 Collaborative Development Overview

Desktop Modeler users can collaborate with each other through version control via Commit and Update operations.

The collaborative development process between the Desktop Modeler and the Web Modeler consists of the following steps:

  1. Every change made in the Web Modeler is automatically saved to the Web Modeler working copy. Multiple users can view the project in the Web Modeler at the same time: one user can edit it and others are in read-only mode.

  2. When Desktop Modeler users open a project, they are notified if the Web Modeler is enabled for this development line.

    Collaborative Development Enabled Notification

  3. The Desktop Modeler creates a local working copy that the Desktop Modeler user works on. To get changes from the Team Server the user needs to click Update (the latest revision is then retrieved from the Team Server, containing commits from other Desktop Modeler users and the latest changes from the Web Modeler).

  4. After the Desktop Modeler user clicks Update, the latest changes from the Web Modeler are committed automatically to the Team Server before the Desktop Modeler receives the update from it. The latest revision from the Team Server is merged into the Desktop Modeler’s local working copy.

  5. The Desktop Modeler user works on the project and, once the user finishes some functionality (for example, fixes a bug or creates a new feature), they click Commit. The user enters a commit message and confirms it. This triggers the same process as during an update (described in step 4), and the Desktop Modeler working copy is updated with the latest revision from the Team Server.

    There are two possible outcomes of this merge:

    a. There are no conflicts, the Desktop Modeler user changes are committed to the Team Server. Afterwards the Web Modeler gets the latest revision from the Team Server and is unlocked; the Desktop Modeler user changes are visible to Web Modeler users. Other Desktop Modeler users will get the changes once they do an update.

    b. There are conflicts, the Desktop Modeler commit process is stopped. The Web Modeler is unlocked without getting changes from the Desktop Modeler user. The Desktop Modeler user needs to resolve the merge conflicts first to before being able to do a commit again.

3 Web Modeler Perspective

For information on collaborative development from the Web Modeler perspective, see Collaborative Development in the Web Modeler in the Web Modeler Guide.

4 Desktop Modeler Perspective

When you connect to a project which has collaborative development turned on, you see which development line (the main line or a branch line) the Web Modeler is enabled for. For information on enabling collaborative development, see Migration From the Sync Process to Collaborative Development.

Click the drop-down to select another line or click OK to open the currently selected line.

Open App Dialog Window

4.1 Merging Latest Changes

To merge the latest changes stored in the Team Server (from both Web Modeler users and other Desktop Modeler users), open Changes and click Update.

Update Option

4.2 Merging Latest Changes

To commit your latest project changes and make them available to other users, open Changes and click Commit. The process of deploying your app (when you click the Run button) will also trigger a commit.

If your project has conflicts, the Web Modeler will be unlocked without receiving your changes. You need to resolve the conflicts in the Desktop Modeler first to be able to complete the merge and commit again.

Your changes will be sent to the Web Modeler automatically if there are no conflicts. For more information on the collaborative development process in the Web Modeler, see Collaborative Development in the Web Modeler in the Web Modeler Guide.

4.3 Viewing History of Commits

You can see all the changes committed to the current development line via Project > More Versioning > History

History Dialog Box

5 Managing Development Lines in the Desktop Modeler

In the Desktop Modeler, you can enable the Web Modeler for a development line (the main line or a branch line). You can also create and delete branch lines.

For collaborative development you need to enable the Web Modeler for one of development lines.

5.1 Enabling the Web Modeler for a Development Line

To share your model changes between the Web Modeler and the Desktop Modeler, you need to enable the Web Modeler for one of development lines.

Whether the Web Modeler is enabled for a development line by default, depends on your project:

  • The Web Modeler is enabled for the main line by default in the following cases:
    • For a new project created via the Developer Portal
    • For an existing project that has the Web Modeler enabled
  • The Web Modeler is not enabled for any development line in the following cases:
    • For a new project created via the Desktop Modeler
    • For an existing project that does not have Web Modeler enabled

To enable the Web Modeler for a development line or switch it to another development line, do the following:

  1. Click Project > More Versioning > Manage Branch Lines. In the Branch Line Manager dialog window, you can see the development line that the Web Modeler is enabled for (if any) is marked with a globe icon in the first column.

    Globe Icon in the Branch Line Manager

  2. Select the line you want to enable the Web Modeler for and click Enable for the Web Modeler.

    Branch Line Manager - Enabling Another Branch

The development line for the Web Modeler has been selected.

When you switch the Web Modeler to another development line, the Web Modeler gets locked for a few moments during this process, a pop-up dialog is shown to its users that the Desktop Modeler user is changing the line for the Web Modeler. All changes from the Web Modeler are committed to the current development line, and only after that the line is changed.

5.2 Creating a New Branch Line

To create a new branch line, do the following:

  1. Click Project > More Versioning > Manage Branch Lines.

  2. In the Branch Line Manager dialog window, you see the list of existing development lines. Click New to create a branch line.

    Creating New Branch

  3. In the Create Branch Line dialog window, set the following:

    a. What line you are creating a new line from: the main line, a branch line, or a tagged version. For more information on these concepts, see section 2 Concepts in Version Control.

    b. Select revision if needed.

    c. Type the name of the new line.

  4. After you have configured all the settings, click OK.

    Create Branch Line Dialog

You have created a new branch line.

5.3 Deleting a Branch Line

To delete a branch line, do the following:

  1. Click Project > More Versioning > Manage Branch Lines.

  2. In the Branch Line Manager dialog window, select the branch you would like to delete, click Delete and confirm deletion.

    Deleting a Branch

You have deleted the branch.

6 Read More