{"id":50791204,"url":"https://github.com/thimo/vscode-branch-diff","last_synced_at":"2026-06-12T11:02:02.182Z","repository":{"id":359096466,"uuid":"1244397989","full_name":"thimo/vscode-branch-diff","owner":"thimo","description":"All changes between the current branch and another branch or commit, stacked in VS Code's native multi-file diff editor — with a PR-style file-list sidebar in the Source Control panel.","archived":false,"fork":false,"pushed_at":"2026-05-20T11:03:30.000Z","size":296,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-20T14:50:29.390Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thimo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-20T08:22:32.000Z","updated_at":"2026-05-20T11:03:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/thimo/vscode-branch-diff","commit_stats":null,"previous_names":["thimo/vscode-branch-diff"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/thimo/vscode-branch-diff","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thimo%2Fvscode-branch-diff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thimo%2Fvscode-branch-diff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thimo%2Fvscode-branch-diff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thimo%2Fvscode-branch-diff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thimo","download_url":"https://codeload.github.com/thimo/vscode-branch-diff/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thimo%2Fvscode-branch-diff/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34240817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-12T11:01:59.305Z","updated_at":"2026-06-12T11:02:02.177Z","avatar_url":"https://github.com/thimo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Branch Diff\n\n[![Release](https://img.shields.io/github/v/release/thimo/vscode-branch-diff?label=release)](https://github.com/thimo/vscode-branch-diff/releases) [![VS Code Marketplace](https://img.shields.io/badge/marketplace-install-blue)](https://marketplace.visualstudio.com/items?itemName=thimo.branchdiff)\n\nThe GitHub **\"Files changed\"** tab, locally. All changes between the\ncurrent branch (HEAD) and another branch — or an earlier commit on the\ncurrent branch — stacked in VS Code's native multi-file diff editor,\nwith a PR-style sidebar of changed files. No GitHub, no leaving the\neditor.\n\n## What it does\n\n- **Command Palette: _Branch Diff…_** → one picker listing every other\n  branch (local + remote) and the last 40 commits on the current\n  branch.\n- **Pick a branch** → diffs HEAD against that branch tip\n  (`branch..HEAD`, \"what I've added on top\").\n- **Pick a commit** → diffs from that commit onwards, **inclusive of\n  its own changes**, up to HEAD. (Internally `commit^..HEAD`, so the\n  changes _in_ the commit you just clicked are part of the diff —\n  which is what you'd expect.)\n- The result opens stacked in the native multi-diff editor: every\n  changed file in one scrollable view, syntax-highlighted, rename-\n  detected, native theme, live refresh as files change. Ideal for\n  watching agent edits land.\n\n## The file-list sidebar\n\nA **Branch Diff** view appears in the **Source Control** panel with\nevery changed file in the active comparison:\n\n- **Tree** or **flat list** layout — toggled from the view title bar\n  (button on the left), persisted in settings.\n- Compact-folder collapsing in tree mode (`a/b/c` joined into one row\n  when intermediate folders only contain one subfolder — same idea as\n  the built-in SCM \"CHANGES\" view).\n- Per-file `+x −y` line counts (via the git API, no shelling out) and\n  themed add/modify/delete/rename status icons.\n- **Click a file → reveals that file _inside_ the already-open\n  multi-diff editor**, scrolling to it instead of opening a separate\n  tab. Deleted files (no head-side content to reveal) open as a\n  standalone diff alongside.\n- **Change Base…** and **Refresh** actions on the view toolbar — swap\n  to a different base or re-run with the current one (HEAD is re-read\n  each time, so refresh picks up new commits).\n- The view header reflects the active comparison next to\n  \"BRANCH DIFF\" — e.g. *\"main ↔ develop · 66 files\"*.\n\n## Relation to the native multi-diff editor\n\nVS Code already opens a native multi-diff for the working tree, staged\nchanges, or a commit range selected in the Source Control Graph. Branch\nDiff adds the one entry point that isn't built in: an ad-hoc\n**current-branch vs. arbitrary branch-or-commit** comparison from a\nsingle command — without hunting through the Graph or staging anything.\nSame native editor, with the missing PR-style sidebar bolted on.\n\n## Settings\n\n| Setting | Default | What it does |\n| --- | --- | --- |\n| `branchDiff.viewMode` | `\"tree\"` | How the file list renders. `\"tree\"` or `\"list\"`. |\n| `branchDiff.compactFolders` | `true` | In tree mode, collapse chains of single-subfolder folders into one row. |\n\n## Development\n\nNo build step, zero runtime dependencies. The only devDependency is\n`@types/vscode` for editor-level `// @ts-check` against the official\nVS Code typings (nothing compiled — the editor's bundled TS checks the\nJS in place). After `npm install`, press \u003ckbd\u003eF5\u003c/kbd\u003e (\"Run\nExtension\") to launch an Extension Development Host with the extension\nloaded; edit `extension.js` and reload the dev host to iterate. See\n`RELEASING.md` for packaging.\n\n## License\n\nMIT © Thimo Jansen\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthimo%2Fvscode-branch-diff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthimo%2Fvscode-branch-diff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthimo%2Fvscode-branch-diff/lists"}