Experimental Feature

This is an experimental feature and is not available on all enrollments.

Rebasing in Workshop

Workshop rebasing enables multiple builders to edit a single module at the same time without needing to worry about overriding each other's changes.

Prior to merging workshop changes on a branch into Main, rebasing will be required if a change occurred on Main after the module was saved on a branch.

The rebasing user interface uses the Changelog panel to depict the changes made in the module.

Starting the rebase

If rebasing is required prior to merging, the Changelog panel will display a visual notification dot. Selecting the panel will show an option that allows the application builder to begin rebasing.

Rebasing panel in Workshop.

Rebasing will attempt to apply changes made on the branch to the latest Main version of the module. Changes that trigger merge conflicts will need to be resolved manually to proceed.

Resolve a merge conflict

A change will be marked as a merge conflict if it was changed both on the Main version and the branch. Some common examples of merge conflicts:

  • A widget or variable was modified on both Main and your branch.
  • A section was deleted on Main and edited on the branch.
  • A widget was moved from location A to B on Main and from A to C on your branch.

An example of merge conflicts found.

When resolving a merge conflict, you can switch between three states within the module. Switching between these modifies the module in real time, allowing you to test how the different options affect the module.

  • Main: The modification as it appears on Main.
  • Branch: The modification as it appears on the branch.
  • Modification: This option stores changes made to the component after beginning rebasing. This is useful when attempting to merge the two changes of Main and your branch.

Finish rebase

Once you are happy with how your module looks and have resolved any merge conflicts, you can save the module to finish rebasing.

Once this is complete, you can safely merge your workshop changes from your branch into Main.

Example

In the example below, we encounter a merge conflict with the object table widget when we try to rebase. On Main, a new column "Departure airport code" was added. However, on our current working branch, we added a column "Action required".

Main: Rebase conflict main object table with `Departure airport code` column showing.

Branch: Rebase conflict branch object table with `Action required` column showing.

In this case, to keep both columns, first select Main and manually add the Action required column. From here, the conflict can be resolved.

Rebase conflict modified object table.