Release notes
What changed
Each release of Switchyard, newest first. The app updates itself; to install it fresh, download the latest version. Everything below is described in more detail in the documentation.
0.1.29
What's new in 0.1.29
Getting started is easier, and your setup comes with you.
- Move from another client. Bring over the repositories you had open in GitHub Desktop, Sourcetree, GitKraken or Fork, read from their own files on this computer. Tick the ones you want and open them. Nothing of theirs is changed, and no passwords or tokens are read.
- Find my repositories. Choose folders, and Switchyard finds every repository in them, skipping build output and
node_modules. See what each has uncommitted, then open the ones you want or add them to Recent. - Workspaces. Keep named sets of repositories, such as Work and Side projects, and switch between them in one step (Ctrl+Alt+W). Each workspace remembers its tabs, layout, sidebar and history views. A folder that has moved is shown with Locate… and Remove, never quietly dropped.
- Portable mode. Put an empty
portable.flagfile beside Switchyard, and it keeps all its settings in adatafolder next to it, for computers where you can't install software. A portable copy doesn't update itself; it points you to the download page instead. - Settings in a repository. Keep your settings, identities and custom commands in a git repository of your own, and bring them to another computer. Passwords and tokens are never written there, and bringing settings in always asks first.
Editing, reviewing and large repositories.
- Edit in the diff, and a quick editor. Change a file where you read its diff, or in a small editor with Ctrl+S, Ctrl+F, Ctrl+H and Ctrl+G (Shift+Enter on a file in Ctrl+K).
- Conflicts. Trivial conflicts settled after you see the plan, Use both in the order you choose, and JSON, YAML and XML merged by structure.
- Stashes and diffs. Stash a hunk or lines; rename, search and compare stashes; compare with the clipboard; moved code shown as moved; compare a branch with its earlier version.
- Blame. Follows moved and copied lines; hover a line in a diff to see who changed it. Ignore and attribute rules edited with a live preview.
- Services. Bitbucket Data Center; Jira, YouTrack and Linear with Start work; commit message templates; review in a worktree; update a request's branch here; suggestions; a branch rules check before pushing; request templates by branch and saved replies; review requests in the tray; a change saved as a page or PDF.
- Sign-ins and settings. Saved sign-ins, git settings by level, and policies for IT administrators, with an MSI installer.
- Large repositories. Index history for fast searches, monorepo mode, background maintenance, a first-run card, health across repositories, and walk through a branch.
- Safe mode. After a crash Switchyard starts with your layout and rules left off for that run; Help → Restart in safe mode.
- A calmer window. A quieter top bar with More (⋯), a close button on every popup, actions on every row in Changes, and the commit box at the top or bottom.
- Plans. After the 30-day trial, without a plan only the read-only basics work; every other feature needs a plan.
0.1.28
What's new in 0.1.28
Fourteen new features for working safely, working with a team, and getting more done in fewer steps.
Safer work
- What's new. After each update, a short list of what changed, each with a Show me button. Help → What's new opens it any time.
- Tests before a push. Name a test command for a repository, and it runs before each push. A failure holds the push back until you choose Push anyway.
- Files that should not be committed. The commit box warns about staged
.envfiles, keys,node_modules, build output, very large files and mixed line endings, with Unstage and Add to .gitignore. It never blocks a commit. - Repository snapshots. Save everything in one click: branches, tags, stashes, staged and unstaged changes and untracked files. Restore it later, after seeing exactly what will change. Rebase, hard reset and history rewrites can take one first.
- A file's timeline. A slider through every version of a file, including versions that were never committed, with Restore this version.
Working with a team
- Conflicts with the team. After each fetch, Switchyard checks whether your branch would conflict with teammates' recent branches, and says which files.
- My work. One view across all open repositories: uncommitted work, unpushed branches, and, with a connected account, your pull requests, their checks, and reviews asked of you.
- Code owners. The commit box says who owns the files you are committing, and a pull request's review shows whether each owner has approved.
- Weekly summary. Your commits across repositories for this week, last week or any range, ready to copy as text or Markdown.
Find, everywhere
- Ctrl+F in every view of a file. The merge editor (any pane, or all of them), the side-by-side compare window, file history and blame, the conflict pane, the commit's files, and every dialog that shows a diff. Match case, whole word and patterns (Alt+C, Alt+W, Alt+R), F3 and Shift+F3 to move, and matches out of view are scrolled to.
Fits any window
- Menus and dialogs fit small and zoomed windows. The repository menu, Help, the settings dialogs and every long dialog now scroll inside themselves, with their buttons always in reach, and stay clear of the window's own buttons.
- Review before pushing closes with Escape, and focus is clearly shown in the branch menu's fields.
Fewer steps
- Preview the result of a merge. See every file as it would be after a merge, conflicts included, before anything is changed.
- Split into commits. Switchyard suggests how to split a large change into separate commits by module, with tests beside their code. Move files between groups and edit each message, then commit them all. Undo puts everything back as it was.
- Typed commands. Type
checkout main,merge feature,push originand more in the palette or after>in Ctrl+K, with suggestions and Tab to complete. - Automation rules. For example: after a pull, if
package-lock.jsonchanged, run your install command. A team's shared rules run only after you allow them. - Saved views. Save a history search and its filters under a name, and open it again from the sidebar or Ctrl+K.
0.1.27
What's new in 0.1.27
Fifteen new features for finding things, checking your work and getting around faster.
Getting around
- Quick switcher (Ctrl+K). One box finds repositories, branches, commits, files, stashes, pull requests, settings and commands across every open repository.
- Branches remember where you were. Switch back to a branch and the commit, the file and the diff you had open come back with it.
- Notes for each branch. A small notepad tied to each branch, kept on this computer and never committed.
- Time on each branch. Shows how long you worked on each branch this week, measured on this computer only, and can be copied as text.
- Branch name templates. Names like
feature/{ticket}-{title}are filled in from a ticket number or title, for each repository or from the team's settings.
Checking your work
- Review before pushing. Go through the commits you're about to push, file by file, tick each one and leave yourself notes. Push is ready once everything is ticked. It can be set to open before every push.
- Commit hints. Quiet suggestions in the commit box when a commit mixes unrelated folders, is very large, has a vague message, or changes code without any test. They never block a commit.
- Dependencies and their licences. When a commit changes a package list, Switchyard shows what was added, removed or changed. It warns when a GPL or similar copyleft licence enters a project that isn't copyleft. Licences are read only from what is already on your disk.
Finding things
- Bisect that runs a test. Name a test command, and Switchyard tests each commit and finds the first bad one, with progress and Stop.
- Find a lost change by its text. Search every branch, stash, the reflog and lost commits for text that once existed, and take that version back.
- Big files in all of history. See what makes the repository large, which commit added each file, and remove files from all history.
- History replay. Watch a repository or a folder grow over time, commit by commit, in a window of its own.
Remotes and the desktop
- Several remotes side by side. Each branch against each remote, how far ahead or behind it is, and Push to all remotes.
- A tray icon. Optional: shows which repositories have unpushed or uncommitted work, with quick Fetch all.
- Open read-only. Open a repository so that nothing can change it: no commits, pushes, fetches or deletions until you choose Allow changes.
0.1.26
What's new in 0.1.26
A release of safety work, from a security review of Switchyard.
- Updates are signed. From this version on, Switchyard installs an update only if it is signed with Pennywise App Studio's own update key and is exactly the file that was signed. An update that cannot be checked is not installed; Switchyard says so and offers the download page instead.
- Safety messages can't be dated ahead. A message from Switchyard's safety switch dated in the future is refused, and every read-only or off message ends within its set lifetime.
- Where Switchyard finds its server can only be changed with the studio's offline keys, and each change now expires.
0.1.25
What's new in 0.1.25
More than one window
Open a second Switchyard window from the repository menu with New window (Ctrl+Shift+N), or Open … in new window to see the repository you are on in a window of its own. Each window keeps its own repositories, and Switchyard brings back every window you had open the next time it starts. Windows showing the same repository stay in step, and when two change it at once the second waits for the first instead of failing.
Pull requests, the whole way
- New pull requests use your repository's template, and can name reviewers, assignees, labels and an issue to close.
- Make a draft ready for review.
- Turn on auto-merge, or join the merge queue when the branch requires one.
- Review as your team does: collect line comments, then send them with Approve, Request changes or Comment. Mark files viewed (synced with GitHub).
- Forks: Switchyard recognises a fork, adds the original as
upstream, syncs your fork without ever forcing, and aims new pull requests at the original repository. - switchyard:// links open a repository, a commit, a pull request or the clone dialog. Switchyard always asks first.
In the history
- Uncommitted changes as a row above the commit each worktree is on. Click it to see the changes.
- History of these lines: select lines in Blame or a diff and see every commit that changed them.
- Branch colours: pin a colour to a branch, or to every branch starting with a prefix such as
feature/.
Undoing a commit, partly
- Revert hunk, Revert N lines, or Revert this change in the working tree… takes part of an old commit's change back out of your files. Nothing is committed; Undo puts it back.
- Move these commits to a new branch…: committed on the wrong branch? The commits go to a new branch and yours goes back to before them.
Zoom
Make everything bigger or smaller, 50% to 300%, in every window: Ctrl+=, Ctrl+-, Ctrl+0, Ctrl+mouse wheel, or Settings → Zoom.
Faster and healthier on Windows
- Repository health → Check this computer looks for long paths, a repository inside OneDrive or on a network share, Defender scanning, Dev Drive and an ssh passphrase that keeps being asked for. It only reads, and says how to fix each one.
- Repository health → Speed up this repository turns on git's own file watcher for large repositories, and shows
git statustimed before and after. Undo puts everything back. - Repositories in git's new reftable format work properly. Before, a worktree on one showed its branch as
.invalid, and a cherry-pick or revert that stopped on a conflict offered no way to continue.
0.1.24
What's new in 0.1.24
The biggest update yet: everything below arrives together.
Everyday polish
Branches in folders. Branches named with slashes, such as feature/login and feature/logout, now sit in a feature folder in the sidebar, and remote branches sit in a folder per remote. Click a folder to fold it; Switchyard remembers what you folded in each repository.
Hide a branch from the graph, or focus on one. Right-click a branch:
- Hide from the graph takes away the commits only that branch has. A chip above the graph counts what is hidden and shows them all again.
- Focus the graph on… shows just that branch and the branch it tracks.
First parents only. In Filters, tick First parent only to see each merge as one step, the way the branch itself went.
Stop to edit during a rebase. In Rewrite history, choose edit for a commit. The rebase stops after it, so you can change files and stage them to amend it, or add commits after it; then press Continue in the banner. The banner now also shows when there are no changes in the list.
Spelling in commit messages. Misspelt words in the commit message are underlined. Right-click one for suggestions or to add it to the dictionary. Right-click in any text box for Cut, Copy, Paste and Select all.
Inline blame. In a file's Blame tab, choose Inline to read the code at full width, with who changed each line and when, faded at the end of the line. Click it to see that commit.
A minimap beside long diffs. A strip beside the scrollbar shows where the added and removed lines are, and where Find's matches are. Press it to jump there.
Your own keyboard shortcuts. Open Settings → Keyboard shortcuts…, press Change and then the keys you want. If two commands share a key, Switchyard says so. Reset all puts every key back.
For power users and teams
Your own commands, in the menus. Open Settings → Custom commands… and add a program to run on a commit, a file, a branch or the whole repository — your linter on a file, a deploy script on a branch, git log on a commit. Put in ${sha}, ${path}, ${file}, ${branch} or ${repo} with one click. The command then appears in that menu by its name. It runs as a program with a list of arguments, never through a shell, and what it printed is one click away. A command that pushes, resets or cleans asks first.
Hooks, on and off. Repository menu → Hooks… lists the hooks git runs here, what each is for, and whether it is on. Turn one off for a while — it is renamed, never deleted — or turn on one of git's samples.
A new repository can start with files. When you make a new repository, choose a .gitignore for Node.js, .NET, Python, Java, Go or Rust, a licence (MIT, ISC, BSD or the Unlicense) and a README, and commit them as the first commit. Nothing is downloaded, and nothing already in the folder is overwritten.
Stacked branches. Right-click a branch → New branch on top of… to build one change on another. When the branch underneath moves on, open Its stack and press Restack: every branch is put back on top of the one below it, keeping only its own commits. Undo takes a restack back. From the stack, open a pull request into the branch underneath.
Release notes between two tags. Right-click a tag → Release notes up to…, or Repository menu → Release notes…. Commits are grouped by type when they follow Conventional Commits (feat:, fix:…), and by folder when they do not; pull request numbers are kept and linked. Copy them as Markdown or save them to a file.
Set the version when a release finishes. Finishing a Git Flow release or hotfix now offers to set the version its name gives in package.json, a .NET project or pyproject.toml, in a commit of its own, so the tag carries it.
Signed tags. With a signing key set up, Create a tag can sign it. Right-click any tag → Check its signature to verify one.
Gerrit. When your remote is a Gerrit server — Switchyard recognises the usual addresses, or tick it in Remotes… — the sync menu offers Push for review…, which sends your commits to refs/for/<branch> with an optional topic.
Custom commands, stacked branches and release notes are part of a Switchyard plan.
GitHub, GitLab, Azure DevOps, Bitbucket and Gitea
Bitbucket and Gitea. Pull requests now work on Bitbucket Cloud and on Gitea, Forgejo and Codeberg, beside GitHub, GitLab and Azure DevOps: list, create, comment, approve, check out, review line by line, and merge. A self-hosted Gitea is connected like a GitHub Enterprise server: say what kind of server it is, and paste a token from it.
CI runs, not just their result. Where a commit or a pull request shows its checks, Runs… lists each run with how long it took. Open one to see its jobs, read a failed job's log right here — its last 500 lines, scrolled to where it failed — run the failed jobs again, or stop a run. (GitHub Actions, GitLab pipelines, Azure Pipelines; Bitbucket Pipelines can be stopped.)
Review threads. In Review the changes…, comments are shown as threads. Reply, resolve or open a thread again, and apply a suggested change straight to your working file when the request is checked out — then commit and push it as usual. Undo takes it back.
Issues. The repository menu and the Pull requests section open the repository's open issues. Start a branch for one, add "Closes #12" to your commit message in one click, or open a new issue. In commit messages, #12 opens that issue, and if your team names its tracker in .switchyard.json ("issueTracker": "https://tracker.example.com/browse/{id}"), keys like PROJ-12 open there.
Releases from your release notes. In Release notes…, choose a tag and press Make a release on GitHub (or GitLab, or Gitea). The tag is pushed first if it is not there yet.
Your repositories, from your account. The clone dialog can now list the repositories of an account you have connected — pick one instead of typing its address. And Remotes… → Make it on a service creates an empty repository on your account and adds it here, ready to publish.
Your token, looked after. When a token is about to expire, or the service is about to stop answering for a while because of its rate limit, Switchyard says so once, under your pull requests.
CI runs, review threads, issues and listing an account's repositories are part of a Switchyard plan.
A terminal, a secrets check and more
A terminal inside the window. Press **Ctrl+Shift+**, or **Terminal** in the status bar, for a console under the panels, already in the repository's folder: PowerShell, Command Prompt or Git Bash, whichever you pick. Each open repository keeps its own, running while you look at another. Drag its top edge to make it taller. (**Ctrl+** still opens your own terminal app.)
A warning before a secret is committed. When what you are about to commit looks like a password, an access key or a token — GitHub, GitLab, AWS, Stripe, Slack, Google, Azure, a private key — Switchyard says so first, shows where (masked), and lets you unstage the file or commit anyway. It is a pattern check on your computer; nothing is sent anywhere. Settings turns it off.
Remove a file or a secret from all history. Repository menu → Remove from all history…: name files or folders to take out of every commit, or secrets to replace with ***REMOVED***. Every branch and tag is kept first, so Put back undoes it until you let the backup go. It then says which branches need a force push — and reminds you that a secret that was ever pushed must be changed where it is used.
Commit only some files, or as someone else. The commit button's menu offers Commit only some files… — the files you tick, as they are on disk, whatever is staged — and Commit as another author…, for a change someone sent you. A file's right-click menu has Commit only this file… too.
Word, Excel and PowerPoint files show their text in the diff, instead of "binary file". Markdown files can be previewed as a page: tick Preview Markdown above the diff.
Mark files reviewed. Tick Reviewed above a commit's diff; the file list shows which you have read.
Bundles. Repository menu → Bundles… saves the repository, or what is new since a tag, as one file with a checksum — for a computer with no network to the remote — and fetches from one you bring back.
Submodules. A submodule that has moved on can be recorded where it is with one click, and a push warns you when a submodule's commit is not on its own remote yet.
And more:
- Find to-dos in the code (repository menu): every TODO, FIXME, HACK and XXX.
- Blame shows age: a bar beside each line, darker for newer commits.
- Compare two files or two folders from anywhere on your computer (Ctrl+Shift+P → Compare).
- Export and import settings (Settings), to carry them to another computer. Tokens and passwords are never in the file.
- A fetch, pull or push that the network drops is tried again, twice, before it is called failed.
- Explorer's right-click menu has Open in Switchyard on folders, and the taskbar icon lists your recent repositories.
- Git comes with Switchyard for computers that have none installed: it is used only then. It is Git for Windows' own MinGit, unchanged, under its own licence (GNU GPL v2), with a note in its folder on where its source is.
Many files at a time
Pick several files at once, anywhere. In Changes, a commit's files, the reviewed objects and the Files view: Ctrl+click adds a file, Shift+click takes a run, Ctrl+A takes everything shown, Escape clears. The heading says how many are picked. Right-click acts on all of them: Stage, Unstage, Discard… (the question lists them), Commit only these…, Stash, Ignore — each says how many files it is about. Ctrl+click on a folder picks everything in it.
Copy the files themselves. Copy files (or Ctrl+C in a list) puts the real files on the clipboard, to paste into Explorer, an email or a chat — a commit's files as that commit has them. Copy paths copies the names.
Export with folders. Export files with folders… writes the picked files into a folder you choose, in the folders they have in the repository. From the history graph, pick one or more commits and choose Export changed files with folders…: every file those commits changed, each as the newest of them has it. Files that were deleted are listed, not written. Open folder on the message takes you there.
Drag files out of any list straight into Explorer, Outlook or Teams.
Filter by file type. Chips above Changes and above a commit's files — .json 7, .ts 3, .sql 2 — show one kind of file at a time.
Icons. Files and folders in Changes and in a commit's files have the same icons as the Files view, coloured by type.
Open a folder in the terminal. Right-click any folder in Changes or the Files view → Open in terminal: the terminal panel opens already in that folder.
Compare versions in a file's history. In Git history for a file, Ctrl+click two versions to see what changed between them, or compare one with your working copy, side by side if you like. Right-click a version for View commit details (the main window jumps to that commit), Copy file, Export this version… and Restore this version… (with Undo).
Compare two commits directly. Pick two commits in the graph and choose Compare: every file with what happened to it (added, modified, deleted, renamed), a click shows its diff, Swap turns it round. A commit's menu has Compare with… a branch, tag or commit.
Ticket numbers become links. Numbers like 451342 | or issue id: 442619 in a commit's message are recognised as tickets: a click opens your tracker, and Show all commits of this ticket filters the history (ticket:451342 in the search box). Set the pattern and the tracker's address in Settings → Tickets….
Conflicts, pictures, branches you use most
A conflict settled once is settled again. Turn on Remember my resolutions… in the conflict banner (git rerere), and when the same conflict comes back -- in a rebase, a merge done again, one branch merged into several others -- git settles it the way you did before. Such a file is marked settled as before for you to look over and mark resolved, and Forget this resolution… brings the conflict back if that earlier answer is wrong here. It works with Windows' line endings, where git's own rerere forget does not.
Favourite branches. Right-click a branch → Add to favourites. They get a Favourites section of their own and come first in the branch menu; a branch renamed in Switchyard keeps its star.
Four ways to compare a picture. Above a changed picture: Side by side, Swipe (drag the divider, or use the arrow keys), Onion skin (an opacity slider) and Difference, which shows only the pixels that changed, and how many.
For people new to the window, or to the code
A short tour the first time you open a repository: the history, your changes, sync, branches, the command palette, Settings and Help, each ringed in turn. Help → Take the tour shows it again.
A tour of the codebase map. In Codebase map…, Take a tour walks someone new through where the repository starts, what changes most, who knows each folder, what changes together and where the bugs have been.
The history with a screen reader. The commit history now works with Narrator and NVDA: each commit is read with its message, author, age, id and branches, the selection is followed, and a search says how many it found. Page Up, Page Down, Home and End now move through the commits too.
When something goes wrong
Problem reports, kept on your computer. When something goes wrong, a short report is kept on your computer, with tokens, passwords and your Windows names taken out, and never sent anywhere. Help → Problem reports… shows them, and Copy report gives you the text to email yourself if you want to. After Switchyard closes unexpectedly, the next launch says so once.
A company proxy that asks for a password. Pull requests, CI runs and issues now work behind a proxy that wants a sign-in: Switchyard asks, sends the answer to that proxy only, and keeps it in memory until it closes. Where the proxy takes your Windows sign-in, nothing is asked.
Several accounts on one service
Connect a work and a personal account on the same GitHub, GitLab, Azure DevOps, Bitbucket or Gitea side by side. Switchyard asks the service who each token belongs to, so you never type it. Each repository uses one account:
- the account it first worked with, or the one you connected from it;
- where several could apply and nothing says which, the Pull requests section asks Which account for this repository? once and remembers the answer.
When a service has more than one account, the Pull requests header shows the one in use. Click it, or Accounts… under the list, to use another, add one or disconnect one; the others stay connected. In Identities… an identity can name the service accounts it uses. Expiry and rate-limit warnings name the account.
Branches that say where they stand
Merged and stale. A local branch says merged when every commit on it is already in the branch you have checked out, and how long it has had no new commit, such as 4 months. Set when that starts in Settings → Branches… (90 days unless you change it).
Archive. Right-click a branch and choose Archive to move it out of the way, into an Archived section at the end of the sidebar. Nothing in git changes. It comes back by itself when it gets new commits or you check it out; Unarchive brings it back sooner.
Commit overlap. Right-click a commit and choose Show overlap with this commit: every commit in the history gets a mark for how much its files overlap that one (same files, superset, subset, heavy, slight). Hover one to see the files they share.
Reshape commits
- Split this commit…: pick files, hunks or single lines to become a commit of their own, before or after the rest.
- Take or move lines out of this commit…: take picked changes out of a commit (they are left staged) or move them into another commit.
- Absorb… on the Staged heading: each staged hunk goes into the recent commit that last changed its lines. The plan is shown first.
Your uncommitted changes are never touched, and Ctrl+Z puts the branch back.
Undo across restarts
Help → Operation log… lists every action Switchyard can take back, newest first, kept in the repository for 30 days, across restarts. Ctrl+Z still takes back only the newest action since Switchyard started; older ones are taken back from the log, after asking. A normal push never sends the log.
More tools
- Repository size… (repository menu): the largest files and folders in all of history, with Track with LFS… or Remove from all history… from any of them.
- Notes shared with a remote: push and fetch commit notes; fetched notes are merged with yours, never written over them.
- An editor and a terminal per repository: Settings → This repository.
- Repositories inside WSL or on a network share: Switchyard says when one is slow to reach, offers a WSL terminal there, and fixes a line-ending setting that would show every file as changed.
- Pictures in Git LFS are shown when they are already on this computer. Nothing is downloaded.
- SHA-256 repositories work throughout.
Safer
This release closes a set of issues found in a security review of the app:
- only Switchyard's own pages can use its internals;
- commands copied from the Git command log, and folder changes in the terminal, are quoted the way PowerShell reads them;
- the sign-in dialog no longer names a server when the address does not say which one git is asking for;
- a terminal takes typing only from the window that opened it;
- files Switchyard writes by name, such as
.gitignore, are never written through a link that leads outside the repository; - a repository's team settings, its source files in the codebase map, and Office documents in a diff can no longer make the app stop responding.
0.1.22
The Files tab shows everything. Files and folders git ignores, such as dist, bin or *.log, now appear in the tree, greyed, so nothing on disk is a mystery. An ignored folder is read when you open it, so even a huge node_modules costs nothing until you look inside.
Find a file like Visual Studio. Ctrl+P works the way Visual Studio's Go To File does:
- Type words, and every one must match:
order service. - The best match comes first: the whole name, then its start, then a word inside it.
- Type a name's capitals:
ocsfindsOrderCustomerService.cs. - Use a slash to match folders:
api/order. - Use wildcards in any word:
*.cs,src/**/*.sql,*.{ts,html}. - Leave things out with
!:order !test. - Search looks inside ignored folders too, except large ones such as
node_modules,binandobj.
Choose what the Files tab shows, per repository. Open Settings → Files view…, or the sliders button above the tree, to:
- show or hide ignored files;
- hide files and folders by pattern, such as
*.logor/docs/old; - choose which folders search skips.
You can also right-click any file or folder and choose Hide from the Files view or Skip in search.
It stays fast on large repositories: on one with 65,000 files, a search takes about a tenth of a second.
Updates download inside the app. Download update in the update banner now downloads the new version in Switchyard and offers Restart to update, instead of opening your browser.
Also in this release
A map of any codebase. New to a repository? Open the repository menu and choose Codebase map… to see how it fits together. It is read from the repository's history and file names alone: no AI, and nothing leaves your computer. It is part of your plan, and of the free trial.
- Start here: the likely entry points, the files changed most, and how the folders link to each other.
- Hotspots and bug-prone files: what changes most, overall and in the last three months, and what fixes touch most often.
- Changed together: files that keep changing in the same commits, even when nothing in the code links them.
- Imports for TypeScript, JavaScript, Python, Go and C#: what everything depends on, folders that import each other in a circle, and modules nothing uses.
- Refactor first: long or deeply nested files that also change often.
- Who knows what: the people who know each folder best, folders whose main author has moved on, and a suggested CODEOWNERS file to copy.
- A treemap of the folders, coloured by changes, recent work, fixes or knowledge.
- Save as page writes the whole map as one file to share.
- Once the map has been read, a file's menu offers What changes with this?, and the commit box warns you when a file that nearly always changes with one you staged has been left out.
Safer by default.
- Undo history and Redo. Help → Undo history lists your last 20 actions in each repository, and any of them can be undone from there. Redo (Ctrl+Y or Ctrl+Shift+Z) does an undone action again.
- Discarded files go to the Recycle Bin as well, in one folder named for the repository and the time.
- Force push can no longer overwrite work you have not seen, even work fetched in the background. You confirm it by typing the branch's name.
- A rebasing pull warns you first when some of your commits are already on another branch on the remote.
- Pull or push with a preview: see the commits and files that would come in or go out before anything moves.
- Lost commits and stashes: find work that a dropped stash or a deleted branch left behind, and bring it back.
- Git command log: Help → Git command log shows every git command Switchyard ran, how long it took and what git said. Passwords and tokens are removed.
Large and company repositories.
- Clone only what you need: recent history only, file contents as they are needed, or a single branch. Get all history fetches the rest later.
- Company proxies: set git's proxy in Settings → Git settings…, or copy the one Windows uses with one click.
- Work on many repositories at once: in All repos, tick repositories and fetch, pull or push them together. Save a set of them as a named group.
- Move files already committed into Git LFS, from the Git LFS dialog.
- Windows notifications, if you turn them on in the sync menu: when new commits arrive for your branch, and when a long fetch, pull or push finishes while Switchyard is in the background.
Every file in the repository. The new Files tab beside Changes (Ctrl+Shift+E) shows the whole repository as a tree, with git's state on each file. Search it with Ctrl+P, by a few letters or a pattern such as *.ts, and right-click a file to open it in any editor, or see its history or blame. Ctrl+Shift+G goes back to Changes.
A sidebar you arrange. Each section of the sidebar folds, moves and resizes on its own: click a heading to fold it, drag it to a new place, or drag the line between two. Right-click any heading to hide sections you do not use.
Hide the diff. Hide diff on a commit's file list gives the list the whole panel. Drag the line between the list and the diff to size them.
Colour themes. Settings → Colour theme has 18 themes, among them VS Code's Dark Modern, Light Modern and Dark+, GitHub Dark and Light, One Dark Pro, Dracula, Monokai, Solarized, Nord, Tokyo Night, Catppuccin and two high contrast themes. Every text stays easy to read in each.