BranchWeaveCompare your branch. Review each change. Keep editing. BranchWeave brings branch comparison into VS Code. Choose a reference branch, see what changed in your current checkout, and copy individual lines or complete change sections into your working files. Your staged, unstaged, new, and unsaved changes are included.
Why BranchWeave?
Get startedOnce BranchWeave is installed:
The Current branch on the right is the branch already checked out in your repository. Selecting a reference leaves your checkout unchanged. For example, if you are working on
Screenshots show the BranchWeave interface with sample repository data. Understand the two sides
Edits on the right affect your working file. This includes typing, copying from the left, Undo, Redo, and Reset. Text edits stay unsaved until you save the file. Explicit create, rename, or delete operations can affect the filesystem immediately; deleting a working file asks for confirmation. The comparison opens as a reusable panel. You do not need to name or save a comparison-session file. Closing the panel leaves your working-file edits in VS Code, where normal save and backup behavior applies. Review and copy changes
Copying replaces the matching destination content and keeps the source. If a line cannot be matched unambiguously, BranchWeave asks you to copy the whole section instead. A complete added or deleted section can also create or remove a file. Undo and Redo let you revisit comparison edits. Reset restores the chosen side to its content when the file was opened in the comparison, after confirmation. Hover or keyboard-focus any toolbar icon for its description and available shortcut; press Escape to dismiss the tooltip. Change highlightingUse Highlight change sections to show or hide the rounded section backgrounds and inline word highlights. An insertion or deletion with no lines on one side appears as a dashed boundary. Save your workThe Working file unsaved label means the current file has pending text changes. Click the Save icon or press Ctrl+S / Cmd+S to save that file. Saving does not commit your changes.
Choose what to compareInclude upstream changes controls the baseline on the left:
BranchWeave uses local branches and locally available remote-tracking references. It does not fetch automatically. To compare against newer remote changes, fetch using your usual Git tools, then Refresh the comparison. Review progress and notesUse the review icon to mark the current file reviewed. Open Review & notes to review an individual section, add a note to the file or current section, and delete notes. Next unreviewed change moves to a section or file that still needs attention. The toolbar and changed-file list show progress. Review completion belongs to the exact file content: editing either side clears the file's completion. Section marks can remain for unchanged, unambiguous sections. Notes stay stored when their section changes, with an anchor changed label so you can reassess them. Export Markdown opens a report in the normal VS Code editor. Save or share it when ready. The report includes progress and notes, including saved notes for files no longer in the changed-file list. Notes and review progress are local to the workspace, repository, reference, current branch and comparison mode; they are not uploaded. Stage or unstage a sectionOpen Git index changes. This panel has its own sections:
Expand a section to inspect its preview before acting. Staging can include unsaved editor text and does not save or alter the working file. Unrelated staged changes are preserved. If the index, branch, HEAD, saved file or live buffer changes during the operation, refresh and select the section again. The index panel is independent of the reference comparison. A committed branch change can appear in the main editors while having no unstaged index sections. Staging supports the same text-file limits as editing; permission changes should be managed with your usual Git tools. Focus mode and whitespaceFocus changed regions collapses long unchanged regions while keeping surrounding context. Expand a collapsed region to read more, or toggle focus off to show the whole file. Ignore trim whitespace hides differences caused only by leading or trailing spaces and tabs. Section positions, copying, review anchors and staging retain the exact content mapping. If the current section is hidden by this setting, the position label explains why. Save comparison presetsIn Compare Branches, give the current setup a name and choose Save preset. A preset stores the reference branch, upstream mode, highlighting, tree/list layout, focus mode, whitespace option and path filter. Load it to restore those settings, or delete it when no longer needed. Presets belong to the selected repository. Loading one keeps the currently checked-out branch and uses the normal confirmation before replacing modified reference previews. Inspect changed code and candidate testsOpen Changed symbols & tests to group JavaScript and TypeScript changes by function, class, method or arrow function. Select a symbol to jump to its location. Deleted symbols point to the reference editor. Other languages, top-level changes and files outside the analysis limits use a file/section fallback. Candidate tests are suggested from matching filenames or parsed relative imports, including files in conventional Export or apply a reference previewUse Export patch to save edits from either side as a Git-compatible patch, relative to that side's opening content. If you edit the left preview and want those edits in another checkout, use Apply reference draft and explicitly choose a local branch/worktree. A worktree is a separate folder checked out to a branch. BranchWeave checks the destination before applying and asks you to resolve conflicting content. Save text changes in that destination when ready. Reference preview drafts are recovered automatically for the workspace and current branch. If changing the comparison would replace a modified preview, BranchWeave asks first. Keyboard shortcutsThese defaults apply while the BranchWeave comparison panel is active. You can change them in VS Code's Keyboard Shortcuts editor by searching for
Requirements and supported files
Binary files, Git LFS pointers, symlinks, submodules, invalid UTF-8, mixed line endings, and oversized files display an unsupported-file message. Permission changes and case-only renames on Windows are not supported. The comparison editor provides syntax highlighting; full language-server features from the normal VS Code editor are not available inside it. Common questionsWhy is my repository missing? Open its folder in VS Code, or add it as a workspace folder. Automatic discovery searches up to four directory levels and skips dependency and build folders. Why is my remote branch missing or out of date? Fetch it with your usual Git tools, then Refresh. BranchWeave only uses references and Git objects already available locally. Why are there no changed files? Clear the path filter and check your reference and upstream setting. Your files may already match the selected baseline. A file whose differences were resolved can remain open for Undo while disappearing from the changed-file list. What if the branches have no common ancestor? Choose Use direct comparison to compare the reference tip with your working files. What if a file changes elsewhere while I am editing? BranchWeave checks the expected content before applying edits. If it detects a conflict, it shows a reconciliation diff. Saving also uses VS Code's normal handling of external file changes. Does BranchWeave switch branches or change Git history? No. It does not automatically check out, stash, commit, push, reset Git, or rewrite references. Creating a worktree requires an explicit choice. Do I need an account or online service? No. BranchWeave runs locally, with no account, backend, telemetry, or runtime dependency downloads. LicenseMIT. See third-party notices for bundled dependencies. |


