Skip to main content

Merging Plans

Create a Merge Request

In order to merge changes between two related plans (most commonly between a branch and its parent), a merge request must first be created between the source plan (the one supplying changes) and the target plan (the one to receive changes).

From the child plan in the PlanDev UI, open the dropdown and select "Create merge request". Confirm which plan you wish to be the target plan and press "Create merge request":

PlanDev UI - Create Merge Request MenuPlanDev UI - Create Merge Request
Figure 1: PlanDev UI - Create Merge Request
note

Currently it is only possible to select the parent branch as the target plan via the PlanDev UI. To merge between other related plans, use the PlanDev API.

Withdraw a Merge Request

You can withdraw a merge request so long as it is in the pending state. A withdrawn merge request cannot be used to begin a merge.

While on the source plan, select the "Merge requests" text besides the plan's name. Then, press the "Withdraw" button next to the merge request you wish to withdraw:

PlanDev UI - Outgoing Merge Requests
PlanDev UI - Withdraw Merge Request
Figure 2: PlanDev UI - Withdraw Merge Request

Begin a Merge

You can begin a merge from a pending merge request so long as the plan is not currently locked.

note

Beginning a merge locks the target plan until the merge is either cancelled, denied, or committed.

While on the target plan, select the "Merge requests" text beside the list of branches to see the incoming requests. Then, press "Review" next to the merge request you wish to begin:

PlanDev UI - Incoming Merge Requests
PlanDev UI - Begin Merge
Figure 3: PlanDev UI - Begin Merge

Cancel a Merge

You can cancel any in-progress merge. From the merge review screen, press the "Cancel" button in the bottom-right corner:

PlanDev UI - Cancel Merge
Figure 4: PlanDev UI - Cancel Merge

Resolving Conflicts

Before a merge can be committed, all conflicts must be resolved to either source or target.

First, select a conflicting activity from the list. The version of the activity in the source and target plan will appear to the right, with the differing fields highlighted. Then, determine which version to keep by pressing either "Keep Source Activity" or "Keep Target Activity":

PlanDev UI - Unresolved Conflict
Figure 5: PlanDev UI - Unresolved Merge Conflict
PlanDev UI - Resolved Conflict
Figure 6: PlanDev UI - Resolved Merge Conflict

You can also resolve conflicts in bulk:

PlanDev UI - Resolve Merge Conflicts in Bulk
Figure 7: PlanDev UI - Resolve Merge Conflicts in Bulk

Deny a Merge

It is possible to deny an in-progress merge, for example, if a request is outdated. Once a merge has been denied, that request cannot be used to begin a merge.

From the merge review screen, press the "Deny Changes" button in the bottom-right corner:

PlanDev UI - Deny Merge
Figure 8: PlanDev UI - Deny Merge

Commit a Merge

Once all conflicts have been resolved, you can commit a merge. From the merge review screen, press the "Approve Changes" button in the bottom-right corner:

PlanDev UI - Approve Merge
Figure 9: PlanDev UI - Approve Merge
External Events and Plan Merge

External Events (specifically, derivation groups) are not included in plan snapshots and merges. This will be addressed in a future release. See External Events for more information.