{"id":27771378,"url":"https://github.com/wolframs/multi-repo-checkout","last_synced_at":"2026-05-02T23:37:06.473Z","repository":{"id":288248467,"uuid":"967346158","full_name":"wolframs/multi-repo-checkout","owner":"wolframs","description":"VSCode extension to check out similar branches across multiple workspace repos simultaneously.","archived":false,"fork":false,"pushed_at":"2025-05-16T11:31:40.000Z","size":1407,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T11:36:25.301Z","etag":null,"topics":["branch","git","repository","vscode-extension","workspaces"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items/?itemName=WolframS.multi-repo-branch-switcher","language":"TypeScript","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/wolframs.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}},"created_at":"2025-04-16T10:08:38.000Z","updated_at":"2025-05-16T11:30:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"4380929a-d99d-484c-813c-ab57f5f800ad","html_url":"https://github.com/wolframs/multi-repo-checkout","commit_stats":null,"previous_names":["wolframs/multi-repo-checkout"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/wolframs/multi-repo-checkout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolframs%2Fmulti-repo-checkout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolframs%2Fmulti-repo-checkout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolframs%2Fmulti-repo-checkout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolframs%2Fmulti-repo-checkout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wolframs","download_url":"https://codeload.github.com/wolframs/multi-repo-checkout/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolframs%2Fmulti-repo-checkout/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002670,"owners_count":26083442,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"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":["branch","git","repository","vscode-extension","workspaces"],"created_at":"2025-04-29T22:36:52.683Z","updated_at":"2026-05-02T23:37:06.461Z","avatar_url":"https://github.com/wolframs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi-Repo Branch Switcher\n\nThis VS Code extension allows you to quickly switch or create branches across all repositories in a multi-repo workspace.\n\n![Readme Header](https://raw.githubusercontent.com/wolframs/multi-repo-checkout/refs/heads/main/img/readme-header.png)\n\n## Features\n\n- **Branch Switching**: Select any existing branch to check out simultaneously across all repositories. *Usage: Command Palette → \"Multi-Repo Branch Switcher: Switch Branches\"*\n- **Quick Switch to Default Branch**: Fast path to switch all repositories to the default branch without enumerating all refs. *Usage: Command Palette → \"Multi-Repo Branch Switcher: Switch to Default Branch\"*\n- **Delete Stale Local Branches**: Automatically clean up old local branches based on a configurable date cutoff, with protected branch patterns. *Usage: Command Palette → \"Multi-Repo Branch Switcher: Delete Stale Local Branches\"*\n- **Fallback to Default Branch**: If a local/remote branch doesn't exist, the extension automatically checks out the user-defined default branch in that repository.\n- **Branch Creation**: Create a new branch in every repository at once. *Usage: Command Palette → \"Multi-Repo Branch Switcher: Switch Branches\" → \"Create New Branches for All Repos\"*\n- **Configurable Default Branch**: Define your preferred default branch name (e.g. `main` or `master`) in VS Code settings. *Config: `multiRepoBranchSwitcher.defaultBranchName`*\n- **Auto Pull After Checkout**: Automatically pull updates from the remote branch of each repository after successful branch switches. *Config: `multiRepoBranchSwitcher.autoPullBranchUpdates` (Always/Ask/Never)*\n- **Auto Reload Window**: Automatically reload the window after successful branch switches. The reload prompt now appears only after all pulls have completed. *Config: `multiRepoBranchSwitcher.autoReloadWindow` (Always/Ask/Never)*\n\n## Usage\n\n### Switch Branches\n\n1. Press \u003ckbd\u003eCtrl+Shift+P\u003c/kbd\u003e or \u003ckbd\u003eF1\u003c/kbd\u003e (Windows/Linux) or \u003ckbd\u003eCmd+Shift+P\u003c/kbd\u003e (macOS) to open the Command Palette.\n   ![usage 1](https://raw.githubusercontent.com/wolframs/multi-repo-checkout/refs/heads/main/img/usage-1.png)\n\n2. Run **Multi-Repo Branch Switcher: Switch Branches**.\n   - The extension will get info on all local and remote branches of all repositories.\n\n3. Choose an existing branch from the list or select **Create New Branches for All Repos** to define a new branch name.\n   - You can filter the branches by typing in the command palette input:\n  \n      ![usage 3](https://raw.githubusercontent.com/wolframs/multi-repo-checkout/refs/heads/main/img/usage-3.png)\n\n4. For each repository, the extension will:\n   - Check out the branch if it already exists locally.\n   - Check out a remote-tracking branch if it exists on `origin`.\n   - Otherwise, it will fall back to the configured default branch.\n\n5. Choose whether to pull the most recent changes from each remote branch, if so configured\n   \n   ![usage 4](https://raw.githubusercontent.com/wolframs/multi-repo-checkout/refs/heads/main/img/usage-4.png)\n\n6. Choose whether to reload the window, if so configured.\n   \n   ![usage complete](https://raw.githubusercontent.com/wolframs/multi-repo-checkout/refs/heads/main/img/usage-complete.png)\n\n### Quick Switch to Default Branch\n\nFor a faster workflow when you just want to switch all repositories to the default branch:\n\n1. Press \u003ckbd\u003eCtrl+Shift+P\u003c/kbd\u003e (or \u003ckbd\u003eCmd+Shift+P\u003c/kbd\u003e on macOS) to open the Command Palette.\n2. Run **Multi-Repo Branch Switcher: Switch to Default Branch**.\n   - This command skips branch enumeration and directly switches to the configured default branch (or detects it automatically).\n   - Handles cases where the branch exists only on remote by creating a tracking branch.\n\n### Delete Stale Local Branches\n\nTo clean up old local branches across all repositories:\n\n1. Press \u003ckbd\u003eCtrl+Shift+P\u003c/kbd\u003e (or \u003ckbd\u003eCmd+Shift+P\u003c/kbd\u003e on macOS) to open the Command Palette.\n2. Run **Multi-Repo Branch Switcher: Delete Stale Local Branches**.\n   - The extension will identify branches older than the configured cutoff (default: 14 days).\n   - Protected branches (matching patterns like `main`, `master`, `develop`) are never deleted.\n   - Repositories with uncommitted changes are skipped.\n   - A confirmation prompt appears before deletion (unless dry-run mode is enabled).\n   - Results are logged to the VS Code Output channel.\n\n## Configuration\n\nOpen your VS Code settings (`Settings → Extensions → Multi Repo Branch Switcher` or in `settings.json`) and set:\n\n![Settings Screenshot](https://raw.githubusercontent.com/wolframs/multi-repo-checkout/refs/heads/main/img/settings.png)\n\n```json\n{\n   \"multiRepoBranchSwitcher.autoPullBranchUpdates\": \"Ask\", // \"Always\", \"Ask\", \"Never\"\n   \"multiRepoBranchSwitcher.autoReloadWindow\": \"Ask\", // \"Always\", \"Ask\", \"Never\"\n   \"multiRepoBranchSwitcher.defaultBranchName\": \"main\",\n   \"multiRepoBranchSwitcher.registerChangesDelay\": 1500,\n   \"multiRepoBranchSwitcher.prune.cutoffDays\": 14,\n   \"multiRepoBranchSwitcher.prune.protected\": [\"^(main|master|develop)$\"],\n   \"multiRepoBranchSwitcher.prune.dryRun\": false\n}\n```\n\n#### Configuration Options\n\n- **`multiRepoBranchSwitcher.defaultBranchName`**: Name of the default branch (default: `\"master\"`). Used when switching to default branch or as fallback.\n- **`multiRepoBranchSwitcher.registerChangesDelay`**: Delay in milliseconds after branch operations before considering source control ready (default: `1500`).\n- **`multiRepoBranchSwitcher.prune.cutoffDays`**: Number of days after which local branches are considered stale (default: `14`).\n- **`multiRepoBranchSwitcher.prune.protected`**: Array of regex patterns for branches that should never be deleted (default: `[\"^(main|master|develop)$\"]`).\n- **`multiRepoBranchSwitcher.prune.dryRun`**: If `true`, only preview which branches would be deleted without actually deleting them (default: `false`).\n\n\n\n## Feedback \u0026 Contributing\n\nFeel free to open an issue or pull request on the repository if you encounter a problem or have a suggestion.\n\nHappy coding!\n\n\n## Manual VSIX Installation\n\n1. Download the most recent [release](https://github.com/wolframs/multi-repo-checkout/releases/).\n2. Go to your VS Code Extensions.\n3. Open the \"More Actions...\" menu:\n![image](https://github.com/user-attachments/assets/f23643d9-02b5-4e7d-af21-8795279df25d)\n4. Select \"Install from VSIX...\" and open the downloaded release file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolframs%2Fmulti-repo-checkout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwolframs%2Fmulti-repo-checkout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolframs%2Fmulti-repo-checkout/lists"}