Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Salesforce Multi-File Org DiffNew to Visual Studio Code? Get it now.
Salesforce Multi-File Org Diff

Salesforce Multi-File Org Diff

Masood Ahmad

|
5 installs
| (0) | Free
Select multiple Apex classes and view side-by-side org diff tabs automatically.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Salesforce Multi-File Org Diff

I built this because I got tired of manually diffing Apex classes one at a time against our sandbox/production orgs. The standard SF Extension Pack only lets you diff files individually, which is painful when you're reviewing 10+ components after a release branch merge.

This extension gives you a dashboard where you pick multiple components, it grabs the org versions in the background, and shows everything in a sidebar diff explorer. Click any file to see the diff instantly. No tabs flooding your editor.

What it does

  • Sidebar Diff Explorer — every diff in one place, grouped by metadata type, with status badges (modified / identical / local-only / remote-only)
  • Multi-metadata support — Apex Classes, Apex Triggers, Lightning Web Components, Aura Components, Custom Labels (diff a single label instead of the whole file), Flows, and Permission Sets
  • Org vs Org comparisons — compare two orgs directly, without needing a local Git repository as the go-between
  • Apex Test Runner — run one or many test classes, see coverage broken down per class with uncovered line ranges, and a full test-methods execution log — each selected class shows its own pass/fail, not a single shared result for the whole run
  • Safe retrieval — org files are pulled into an isolated cache; your local workspace is never written to as part of a diff
  • Read-only org side — the org panel in every diff is a virtual, locked document; you can't accidentally edit or save over it
  • Git vs Org author blame — see who last touched a component locally (via Git) next to who last touched it in the org
  • Delta package.xml export — generates a deployment-ready manifest from whatever's currently modified, with test classes auto-inferred
  • Release brief & audit report export — Markdown output meant to be pasted straight into a PR description
  • Validate → Deploy → Rollback — check-only validation before every deploy, with a one-click rollback to the org's pre-deploy version
  • Search everywhere it matters — the component scanner, the org-vs-org matrix, the test class picker, and the coverage/test-methods results views are all searchable

Prerequisites

  • Salesforce CLI (sf) installed and at least one authenticated org (sf org login web)
  • A Salesforce DX project with sfdx-project.json

Usage

  1. Open the Salesforce Org Diff sidebar (the icon in the Activity Bar)
  2. Click the dashboard icon to open the Workspace Explorer
  3. Select the components you want to compare, hit Compare Selected Components
  4. The sidebar fills up with results, grouped by type — click any file to see the diff
  5. Use Open All Diff Tabs if you want everything open at once, or the status bar's quick menu (bottom-left) for one-click access to everything else

Commands

Command What it does
SF Diff: Open Multi-File Hub Dashboard Opens the component selector / test runner / manifest hub
SF Diff: Compare Org vs Org Directly Diff two orgs against each other, no local checkout needed
SF Diff: Run Pre-Deploy Apex Tests Suggests and runs test classes for the active file
SF Diff: View Git vs Org Author Blame Local Git author vs. org's last-modified-by, side by side
SF Diff: Generate PR & Jira Release Brief Markdown summary of everything modified, ready to paste into a PR
SF Diff: Rollback Last Deployment Restores the target org to its pre-deploy state
Refresh / Switch Org / Clear Cache Sidebar toolbar icons for the diff explorer

Safety & security notes

  • Retrieval is strictly read-only against the org (sf project retrieve start only — this extension never deploys unless you explicitly click Deploy).
  • Remote content is cached under VS Code's own extension storage, outside your project folder, and every read of that cache is confined to that directory.
  • All CLI/Git invocations run as argument arrays (not shell strings), so file, component, and org names can't be interpreted as shell commands.
  • The extension declines to run in untrusted/restricted workspaces, since it acts on file and folder names in the workspace.

Development

npm install
npm run compile        # bundle with esbuild
npm run check-types    # type-check only
npm run test:unit      # fast unit tests for the pure diff/coverage/manifest logic
npm test               # full Extension Host integration test (downloads VS Code on first run)
npx @vscode/vsce package

License

MIT — see LICENSE

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft