Managing branches

You can see a list of all your development branches if you navigate to the Tests > Branches tab in the mabl app. From there you can do the following actions:

10821082

A list of development branches in mabl

Viewing branch details

Clicking on a branch in the Branches tab brings you to the Branch Details view, which provides a summary of the tests and flows on the branch as well as critical information, including:

  • The current version of the development branch along with the author and timestamp
  • The current version of the master branch along with the author and timestamp
  • Steps changed on the development branch compared to the master branch.
  • Warning of potential conflict if changes have been made on master since branching off.
10871087

Branch Details view

📘

Limitation

The compare and conflict resolution views are not available for API tests.

Comparing a branched version to the main version

To compare two versions of a test or flow in a test branch and master, go to the Branch Details page for a specific branch and click on the change count (under the Changes column) for the test or flow that you want to compare.

21682168

Compare versions view

Steps will show up in red on the left if they do not exist on the test branch, and will show up green on the right if they do not exist on the main branch. Steps that exist in both versions show up as white steps and cannot be removed.

Resolving conflicts

If updates have been made to the master branch of a test or flow since the last version on the test branch was saved, a red :exclamation: icon will appear in the conflicts column. Clicking on the red :exclamation: icon opens up the conflict resolution view, where you can decide which steps, variables, and parameters you want to keep and create a new version on the test branch. That way, once all conflicts have been resolved, you can safely merge the new test branch version into master.

600600

Click on the red ! icon to open the conflict resolution view.

📘

Possible conflicts

If either the master or the branch version of a test or flow was saved prior to March 27, 2022 there is insufficient information to determine whether it is safe to overwrite the master with the branch version. Therefore, a red ! icon is shown to indicate possible conflict. The version info underneath name of the test or flow would also be missing the description "Branched from version ... on master". Follow the steps in this section to safely reconcile the changes between the versions.

Conflict resolution view

The conflict resolution view appears as a three-columned table with the following sections:

  • Master version: steps appear in red if they don't exist on the test branch.
  • Space to create new version
  • Test branch version: steps appear in green if they don't exist on the master branch.

Steps that appear in white exist in both versions and cannot be changed

12391239

Value conflict
The variable and parameter cards show a list of all variables or parameters combined from both versions, with tags indicating where they came from. A :exclamation: Value conflict message indicates that a variable or parameter exists in both versions but has a varying default value. You can select and deselect which variables you'd like to use in the new version using the checkboxes. Value conflicts must be resolved to continue.

600600

Reviewing the final version

When you're satisfied with the steps, variables, and parameters selected in the center column, click Review to check over the final version. You may return to the previous editing page and make changes if you want to change anything. Otherwise, if everything looks correct, click "Save" and a new version will be saved to the test branch!

600600

🚧

Merging with conflicts

If not all conflicts have been resolved and you continue with a merge, the test version of conflicting steps and values will overwrite the master version.

Merging a branch

To merge a branch into master, use the Merge button on the Branch Details page. If you have no conflicts on your branch, you will see the following confirmation:

498498

Merge confirmation

If you try to merge a branch that has potential conflicts, you are presented with a warning modal with the suggestion to resolve conflicts. If you choose to merge anyway, the steps and values from the test version will overwrite the master version.

492492

Potential conflicts warning

📘

Merging limitations

  • You can only merge a branch into master and cannot choose a different branch to merge into.
  • You can merge a branch from the mabl CLI with the command mabl branches merge. However, unlike the desktop app, the mabl CLI does not check for merge conflicts and overwrites the master version if there are any conflicts.

Reverting a merge

Sometimes the merged version of a test or flow will result in unintended consequences and you will need to revert to a previous version. Since tests and flows are independently versioned in mabl, it is not currently possible to reopen all of the tests and flows on a branch in the previous version. If you do need to restore a test or flow to an earlier version, you can take the following steps:

  1. Navigate to the Details page of the test or flow that you wish to revert.
  2. Click on the "Change History" tab.
  3. Select the older version that you wish to revert to.
  4. Click on the "Save as latest version" button. This action effectively creates a new version of the test or flow that contains the same information as the desired version. This process must be done separately for each merged test and flow that you wish to revert.

Deleting branches

After a branch has been merged into master, it will still appear on the Branches page. To delete a branch, you can click on the Delete icon.

947947

Deleting a branch

🚧

Deleting tests and flows

If you delete a test or flow, it will be deleted across all branches.

  • You can restored an accidentally deleted test or flow from the Activity Feed. (Settings > Activity Feed).
  • If you want a test to stop running on a specific branch (but continue running it on others), you can go to the Test Details page, select the branch you'd like to stop running this test on from the branch dropdown, and turn off the test using the toggle. This action prevents the test from running on the selected branch.