Compare and diff

MetaCroc logo

Compare and diff #

Compare shows which elements differ between two branches and lets you drill down to field-level changes. The same comparison drives merge requests, rebase, and cherry-pick.

Where to compare #

  • Branch detail → Compare tab: Compare with defaults to the parent branch. For main, select a branch first.
  • Context menu → Compare with…: dialog Compare branch (Comparing {branch} against), then the same comparison view.
  • Merge request detail: affected structures with their diff (see Merge requests).
  • Versions tab: compare two versions of one element on the active branch.

Any branch of the system except deleted ones can be selected.

Changed elements #

The comparison lists elements that changed on the compared branch since its baseline (see Concepts):

CategoryMeaning
AddedElement exists on the compared branch but not on the other
RemovedElement was deleted on the compared branch
ModifiedElement content changed, or the element was moved to another folder
ConflictThe element changed on both branches since the common baseline and the same field has different values

Elements that were not changed on the compared branch are not listed, even when the other branch changed them.

When you compare a branch with its parent (the default), every changed element is shown as Modified (also elements created on the branch) and conflicts are not calculated. Added and Conflict appear when you compare with another branch, in the Cherry-pick tab, and in merge requests.

Filters: category pills (All … in comparison, Added, Removed, Modified, Conflict … needs resolution), element Type, and Search (Search by name / code…). Columns: Element, Code, Status, Changes (counts of added +, modified ~, removed − fields).

Empty states: No differences between these branches. and No element(s) match the selected filters.

Field-level diff #

Click Diff on a row to open the field-level view: basic attributes and sub-records (columns, indexes, sources…) side by side, Original on the left and New on the right, with added fields in green, removed in red, and modified in amber.

Field-level diff of the Country table: changed description and a new column

How conflicts are detected #

MetaCroc compares three versions of each element: the baseline (common ancestor), the version on one branch, and the version on the other branch.

SituationResult
Field changed only on the source sideTaken from source
Field changed only on the target sideKept from target
Field changed on both sides to the same valueNo conflict
Field changed on both sides to different valuesConflict

Conflicts are resolved per field with Source, Target, or Custom (custom value), or in bulk with Accept all source, Accept all target, Reset. Resolution is required in merge requests, rebase, and cherry-pick before the change can be applied.