Multi-repository Support Released!

Jessie Houghton

As one of our most highly request features with Developer Community, we are so happy to announce the release of multi-repository support in Visual Studio 2022. Support for multiple repositories means you can have up to 10 active Git repositories at once. This allows you to work with a solution that spans more than one repository, enabling git operations accross several repositories at the same time. For example, in a large web project you may need different repositories to manage work done on the frontend, the API, the database, the documentation, and various libraries and dependencies. Before multi-repository support, you may have needed to open multiple instances of Visual Studio to work between repos, but now you can manage, view, and debug them all with one instance of VS.

Start using multi-repository support by updating your Visual Studio 2022 to version 17.4 or later and opening a solution or folder with projects across several repositories. Check out our sample solution here that spans multiple public GitHub repositories to see how this works!

Are you new to Git, GitHub, and version control?


Start utilizing GitHub in Visual Studio to its full potential by signing up for the GitHub learning series.

Branch Management and Tracking Changes

Multi-repository support extends the capabilities of the Git Changes and Git Repository windows. This means managing your multi-repo scenarios works the same as working with a single repository. You can create your branches across several repositories at once in the extended Branch creation dialog. Branching in a multi-repo scenario

Branching for multi-repo

Then, as you make changes, the Git Changes window tracks your work separated by repository. This allows you to stage and commit as you normally would.

Multiple repository tracking changes

You can use the branch pickers in the status bar and the Git Changes tool window to switch branches. Simply click on the branch you’d like to checkout. Additionally, you can perform inner loop branching operations like merging, rebasing, renaming, deleting, and comparing branches by right clicking on the branch. You can perform more advance repository and branch management operations in the Git Repository Window.

Multi-repository support for branch management from the status bar

Git Repository window multi-repository support

Network Operations

Once you’re ready to commit, the network operations dialog makes it easy to specify the exact branch you’re pushing to and reorder your pushes. This same dialog allows you to exercise more control over other network operations, like Fetch and Pull.

Multi-repository support for push

Repository Settings

Updates to the Git Repository Settings page allows you to specify your options for each repository. For example, you can specify whether to prune remote branches during fetch.

Multi-repository support in settings

Open Folder

Additionally, you can activate multiple repositories from a Folder in addition to from a Solution.

Multi-repository support for repo picker in the status bar

Building with Your Feedback and What’s Next

Users were requesting help dealing with context switching, collaboration and debugging, and organizing their code. We collected feedback that developers were using other Git clients or even multiple instances of VS to apply Git operations in different repos, projects, and solutions. We also heard that many organizations were creating NuGet packages to get internal dependencies that should just be easy to consume from a separate repo. Finally, users needed a better way to manage things like microservices, separate projects, and scripts or pipelines.

We started by scoping our support based on the open solution and expanded the support to folder scenarios. By focusing more broadly than just on submodule support, we could enable quick cross repo debugging and ensure those not using submodules a seamless experience. A complete submodule experience is on the roadmap for us to tackle in the future.

10 Repository Limit

We currently support up to 10 active repositories at once. We are continuously monitoring the performance impact on I/O, CPU, and UI responsiveness, especially as the size of the repositories can have a large effect. Since less than 0.05% of users are exceeding the 10 repositories in preview, we’ll continue to investigate and take feedback to understand how we can deliver a great experience for all scenarios going forward.

 

Let us know what you think

Your feedback has informed our work at every step of developing this feature – thank you! Try out the new multi-repository support and let us know what you think by taking the following quick survey: