Conflict resolution

A conflict is any value that already exists on the target and differs from the bundle. DriftSync never guesses which one is right — it flags the conflict in the dry-run diff and lets you decide, per item, with three choices: skip, overwrite, or merge.

The three resolutions

Skip

Keep the target's current value and leave it unchanged. Use skip when the target's value is intentionally different — a per-environment setting like a site URL, a payment mode, or an analytics ID that should not be promoted along with everything else.

Overwrite

Replace the target's value with the one from the bundle. This is the usual choice when you are promoting a known-good configuration from staging to production and want the target to match the source exactly.

Merge

Combine the two values where the field supports it. Merge applies to list-like structures — nav menus, widget areas, and similar collections — where adding the bundle's items to the target's existing ones is more useful than replacing the whole list. Scalar values (a title, a toggle, a number) cannot be merged; for those, merge falls back to a straight overwrite.

Setting a resolution

Every conflicting row in the dry-run diff carries its own control, so you can handle each value on its own terms. You can also set a default action for the whole release and then override only the handful of rows that need something different.

  • Per item — pick skip, overwrite, or merge on any single row.
  • Bulk default — choose the action every unresolved conflict falls back to, so you only touch the exceptions.

Note

Your resolutions are part of the review, not the bundle. The same bundle applied to a different target can be resolved differently, because the conflicts depend on what that target already has.

Held values are not conflicts

A value the source redacted shows as held, not as a conflict. DriftSync will not overwrite the target with a withheld value — it leaves the target's value in place for you to fill in. See secrets and redaction for how holding works and why a staging key never clobbers a production one.

After you resolve

Once every conflict has a resolution, apply. DriftSync takes a snapshot and writes exactly the outcome the diff showed — no surprises. If a resolution turns out wrong, roll the whole release back in one click.