This feature may not be available by default and might need to be enabled upon request. Please contact your account manager for more information.
Concurrent Working allows users to work in parallel branches without having to lock a project. Changes made in any branch can be compared before merging to Main or to another branch and synchronized with any new updates that happen meanwhile.
See below for details on the following features
Setup Concurrent Working
Create branch
Create a branch from another branch
Project sharing at the branch level
Switch between branches
Merging branches, including merging to another branch
Maintaining branches
See the overview of the feature here or review the step-by-step instructions below.
Enable Concurrent Working
Navigate to Dashboard
-
Select the 3 dots for the Project you want to enable concurrent working
Easy invitation - leave this enabled to allow collaborators to invite other team members to the project. Disabling this feature means that only the project owner can add collaborators.
Note:The project must be unlocked for the concurrent working mode to be enabled
-
The following popup will appear
-
Select Confirm to enable Concurrent Working. The toggle should now be blue to indicate it is enabled
-
-
Expand arrow will appear beside the project
Main branch is created for the project and selected automatically
Create branch
Open any branch
-
Select the dropdown next to the branch name to access the menu
A popup will appear
4. Give the branch a unique name and select a source branch to select from in the dropdown list (ensure you are a member of the source branch to see it populated here).
A locked branch can still be used as a source. In that case, the new branch is created from the locked branch's latest saved revision, and you will see the message "Will use the last saved revision of a locked branch."
A branch created from another branch behaves the same as one created from Main: it merges to Main directly, and its update-from-Main status is tracked against Main. No parent-branch relationship is recorded.
Project sharing at the branch level
Select a branch within the project of your choice
Select the logo > Click on Project Team
You will now see a page with all the users that currently have access to the selected branch. Click Add Team Member and select the users you wish to add.
Switch between branches
You can move between branch contexts without going back to the dashboard.
Open the branch menu from the current project context.
Select "Switch to another branch".
Select the branch you want to open. The menu includes Main and the project branches you have visibility on.
Merging branches
To begin the merge process, open the branching menu and select "Merge"
A popup will appear allowing you to select the merge direction (into or from another branch) and select the source or target branch, respectively.
Once a selection has been made, click "Continue to merge".
-
Popup will appear, allowing you to review DDL and non-DDL changes.
This view will show you all the SQL object changes you have made. On the right side is the Main branch side, and you will see checkboxes. Those boxes will allow you to specify which objects you want to push to the Main from the current branch.
Selective merge
At this stage, it is possible to perform a selective merge by unselecting objects, columns, and diagrams.
Objects
If an object is not ready to be promoted, it can be excluded from the merge by deselecting it. Any references to referencing objects will be updated on the fly (if for example that object does not yet exist in the target branch).
Columns
When multiple users change the same object, columns can be reconciled by selectively including or excluding the desired columns to preserve edits from both source and target branches.
Note, when merging from main, the merge process can not distinguish between a deleted column and a newly created local column and both will by default be selected (checked) for deletion. Therefore, to not lose local changes, review and unselect the newly created columns.
Also note, only simple columns that do not have references (e.g., do not participate in a PK, FK, Col Template) are eligible for unselection.
Diagrams
Diagrams can be unselected from a merge. Note that deleted objects will always be removed from a diagram during a merge regardless of selection.
-
Click "Apply and go next" to review project-level object changes
-
Click "Apply and go next" to review diagram changes
Note: New Enhancement
Diagrams can be selected when merging. The user can now choose which diagrams they wish to merge. Apply and merge apply the changes to the main branch.
Synchronize with the latest changes from the main
Pushing to main requires that any changes applied to main outside of a given branch be applied first. A
-
Modelers will see a blue indicator for Updates from the Main
-
Alternatively, you will see the update from main indicator in the branching menu. Select either to begin the merge process.
Popup will appear, allowing you to review DDL and non-DDL changes.
Review SQL objects on the first tab. Note the DDL/non-DDL toggle on the bottom right.
To exclude objects from the merge to main, uncheck them here.
Click "Apply and go next" to review project-level object changes.
Click "Apply and go next" to review diagram changes
Apply and merge apply the changes to the current branch.
Note: Update from Main always pulls changes from Main. To bring in changes from another branch, use Merge to another branch instead.
Managing branches
From the Branches screen
To manage Concurrent Working projects and their branches, click on the three-dot menu next to any project in the dashboard and select "Branches."
The Branches screen offers the following options:
Open the revision for viewing/editing.
Review branch revisions.
Merge a revision to the Main branch.
Delete a revision.
Note: the update, merge, and status indicators on the Branches screen describe each branch's relationship to the Main branch.
From the Dashboard
Direct access to project branches is also available from the account dashboard by expanding the dropdown on a concurrent project.
Note that quick access for deleting a (non-Main) branch is available from the three-dot menu.
See also: