Project113

Change Request Dependencies

Dependencies let you link change requests together to ensure they are merged in the correct order.

Why Use Dependencies?

When a change request depends on another (for example, an API change must land before a frontend update), you can create a dependency to enforce the merge order. The platform will not let the dependent CR merge until its prerequisite has been merged, unless its force merged by a user.

Creating a Dependency

  1. Open a change request.
  2. Click Add Dependency.
  3. Select the change request this one depends on.
  4. Optionally enable squash with dependency to combine both CRs into a single merge.

Dependency Graph

The repository's dependency graph shows all open change requests and their relationships. This visualizes the merge order and helps identify bottlenecks.

Squash with Dependency

When squash-with-dependency is enabled, the dependent change request will be squashed together with its dependency during the merge. This is useful when commits from multiple CRs form a logical unit.

Merging Dependent Change Requests

When you merge a change request that has dependencies (or dependents), the platform processes the linked change requests in topological order, ensuring each one merges successfully before the next begins.

Auto-Retarget

When a change request is merged, any other open or draft change requests whose target is the merged branch are automatically retargeted to the merge target. This keeps dependent change requests pointing at the right branch after their dependency lands.

For example, if CR-B merges feature-b into master, and CR-A targets feature-b, then CR-A is automatically retargeted from feature-b to master. This pairs naturally with Auto-delete source branch, which would otherwise leave the dependent change request pointing at a branch that no longer exists.

The platform posts an automated thread on each retargeted change request, so the change is visible in the discussion history: Target retargeted from 'X' to 'Y'.

Auto-retarget can be turned on per change request (toggle Auto Retarget when editing the CR), as a repository default in repository settings, or through CR policies.