User guide

Compare & deploy

Find differences, review diffs, validate, deploy, quick deploy a validation, and roll back.

Every deployment starts by working out exactly what differs between a source and a target. You review the differences, pick what to ship, and Diffbridge validates or deploys it. (If you already know exactly what you want to ship, Quick deploy skips the review step.)

Start a comparison

Compare & deploy → New comparison

  • Source: an org, a git branch (switch the picker to Git), or a backup snapshot (from Backups → Restore from this snapshot).
  • Target: an org (to deploy) or a git branch (to commit). Use the ⇄ button to swap them.
  • Metadata types: grouped by category. Defaults covers code, objects, automation, UI, security (including profiles) and config. Reports, dashboards, documents, email templates, Experience bundles and org settings are opt-in.

Click Compare now. Both sides are retrieved in parallel; large orgs can take a minute or two.

New comparison: pick source and target, then the metadata types
New comparison: pick source and target, then the metadata types

Read the results

Each component has a status:

Status Meaning Deploying it…
New Only in the source creates it in the target
Changed In both, different overwrites the target's version
Deleted Only in the target deletes it from the target (destructive change)
Identical Same on both sides does nothing
Results: status tabs with counts, type filter, search, analysis issues, and the diff
Results: status tabs with counts, type filter, search, analysis issues, and the diff

Use the tabs (All changes, New, Changed, Deleted, Identical), the type filter and the search box to narrow the list. Search also looks inside objects and profiles: searching Region finds Account because its Region__c field changed, and shows the matching field as a chip. Rows show how many changes are inside them, for example Custom object · 9 changes inside.

Click a row to see its diff: Split (target left, source right) or Unified, with word-level highlights and collapsed unchanged lines. For objects, profiles, permission sets and custom labels the panel opens on Pick changes so you can deploy individual fields or permissions; see Cherry-picking changes.

Searching “status” finds objects and profiles whose changed fields match, shown as chips
Searching “status” finds objects and profiles whose changed fields match, shown as chips

Rows with a red or amber icon have code analysis findings (for example SOQL inside a loop, or a hard-coded record ID). The issue list is shown above the diff.

Keyboard: ↑/↓ (or j/k) move through the list, space selects the focused row.

Validate or deploy

Tick components and click Validate or Deploy. The panel shows, before anything starts:

  • Apex tests: the plan (Smart by default) with the exact test classes and the reasons. See Apex tests & Smart tests.
  • Cherry-picked changes: for objects/profiles where you picked a subset.
  • Queue: how many jobs are ahead, and whether this job will supersede older ones.
  • Problems likely to fail the deployment: missing dependencies (with an Add button that selects the missing component) and deletions of Apex that other code still uses.
  • Code analysis: warnings and info from the analysis rules.
  • Deployment notes: shown to approvers and in history.

If the target requires approval and you're a deployer, the button reads Request approval.

The panel also shows any Smart fixes (dependencies, fields and permissions added, deleted fields cleaned out of layouts and reports; see Smart fixes & dependencies) and Review package, a list of every component that will be deployed or deleted.

The deploy panel: only a flow and labels are selected, so Smart skips Apex tests even for production
The deploy panel: only a flow and labels are selected, so Smart skips Apex tests even for production

Validate vs. deploy

  • Validate is a check-only deployment: Salesforce compiles everything and runs the chosen tests, but nothing is saved.
  • Deploy saves the changes. Just before it starts, Diffbridge snapshots the current target versions of everything in the package so you can roll back.

Watch a deployment

The deployment page updates live: component and test progress bars, an Activity log, the Components list (including Apex that was dropped because it was identical) and an Errors tab with component errors, test failures and coverage warnings.

Live deployment page with progress, test plan, notes and activity log
Live deployment page with progress, test plan, notes and activity log

Actions on the page:

Button When What it does
Cancel queued, running, awaiting approval Removes it from the queue, or asks Salesforce to cancel the running deployment
Run now queued Cancels whatever is running on that org and starts this one next
Approve / Reject awaiting approval (owners/admins) Releases it into the queue, or rejects it
Quick deploy successful validation that ran tests Deploys the validated package without re-running tests (valid for 10 days)
Deploy this package successful validation that didn't run tests Deploys the same package again for real
Roll back successful deployment Restores the pre-deployment snapshot and removes components the deployment created
Package always Downloads the exact zip that was deployed
History: every validation, deployment and rollback with status, tests and duration
History: every validation, deployment and rollback with status, tests and duration

Commit to git instead

If the target of a comparison is a git branch, the action bar shows Commit to branch. Choose a branch name (created from the target branch if it doesn't exist) and a commit message. Diffbridge commits and pushes; open a pull request from that branch in your git provider.

Re-compare

Re-compare runs the same comparison again (same source, target and types), which is useful after a deployment or after someone changes an org.

Something unclear or missing on this page?