Skip to content

Diff Mode

Diff Mode

Diff mode compares two assemblies side by side:

dotsider diff v1.dll v2.dll

Each tab shows both assemblies with differences highlighted. Added items appear in green, removed in red, changed in yellow.

Press f to cycle through diff filters:

FilterWhat it shows
AllEverything from both assemblies
AddedItems only in the right assembly
RemovedItems only in the left assembly
ChangedItems present in both but different

This is useful for reviewing breaking changes between library versions, auditing what changed in a new build, or understanding the impact of a refactoring.

Types are matched by fully qualified name. Methods are matched by declaring type, name, and signature. Assembly references are matched by name.

For matched methods, the diff detects changes across several layers:

  • Attributes — visibility, vtable layout, sealed/abstract flags
  • Implementation attributes — IL vs native, managed vs unmanaged
  • Local variable signatures — local types decoded and compared element-by-element
  • Exception regions — try/catch structure, handler offsets, catch types resolved by name
  • IL instructions — a normalized walk that resolves metadata token operands (method calls, field accesses, type references, string literals, standalone signatures) to their semantic names before comparing, so metadata table reordering between builds does not produce false positives

The Change column on the Methods tab shows which layers differ: attributes, impl, body, or a combination.

The Summary tab has selectable info panels and change statistics. Press Tab to cycle focus between them, select text, and press y to copy. iw and yiw work in these panels for quick word-level copying. V selects the entire line and yy copies it.

On the Types, Methods, and References tabs, focus a row and press y to copy it as tab-separated values. A brief flash confirms the yank.