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
- Open the Salesforce Org Diff sidebar (the icon in the Activity Bar)
- Click the dashboard icon to open the Workspace Explorer
- Select the components you want to compare, hit Compare Selected Components
- The sidebar fills up with results, grouped by type — click any file to see the diff
- 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
| |