Git Experience Futures

Our goal is to provide a Git experience that works for different engineering systems and teams, while making it easy to use. Today, we’re announcing improvements to Visual Studio, Visual Studio Online, and Team Foundation Server that help us reach that goal. This isn’t a comprehensive list of the Git enhancements we’re making, but it will give you some specifics on the direction we’re heading.

Pull Requests in Visual Studio

A major part of most Git workflows is reviewing code submissions using pull requests. The current experience in Visual Studio is a link to the website, but we’re updating it so you can accomplish more of the pull request workflow inside Visual Studio. You’ll be able to create a new pull request, and view active pull requests assigned to you or created by you. Later, we’ll bring an improved experience for pull requests to Team Explorer Everywhere.

Pull Requests are easier to find and review

No one wants to dig through a long list to find a pull request. To make it easier, the pull requests relevant to you will be grouped together and sorted to the top. You can still get to all pull requests, as well as filter them by their status and who they’re assigned to.

When you get to the pull request you want, the new details page will make it easy to find the status and act on it. Reviewers will have a clear way to provide feedback and approve the pull request. Owners will have an easy way to see the status and merge. When the pull request is complete, you can customize the merge message and a merge commit will always be created so it’s easier to view the repositories history.

Massive Scale

Some large teams at Microsoft are currently moving to Git hosted on Visual Studio Online. To address their unique needs, we’re improving VSO / TFS to scale to extremely large Git repositories. There are 3 scale areas we’re focused on: many branches, many people, and lots of content. Delivering the level of scale they need will be a journey that goes into 2016, but we’re starting to deliver pieces of it in 2015.

To address repositories with large files, VSO and TFS will support Git Large File Storageso you can opt out of cloning the entire history of large files. This is great if your repository has large binary files such as .zip, .exe, etc. Also, it’s a community driven extension to Git that we’ve collaborated on with the GitHub team so you’ll have a seamless experience across both services.

Limited Refs is another scale feature that enables a larger number of branches and users in a single repository, by reducing the cost of fetching and pushing when there are many branches in the repository (for Git enthusiasts: we implement this by returning a filtered response to an info/refs request). Redeltification is another improvement that will help large repositories. It ensures a fast initial clone by returning a highly compressed pack file. We have more scale work on the way and some of these features will be opt-in since there are experience trade-offs.

GitFlow

Most teams follow one of the common GitFlow practices to make and track code changes. Most of those flows start by creating a topic branch. We’ll make this easier by allowing you to create a branch directly from a work item in the web experience. That work item will be linked to your branch and pull request so it’s easy to see the status.

Our vision is to expand this functionality to support different GitFlow practices, such as branch naming, and allow seamless linking between work items, code, and builds.

SSH support

Many people use SSH to connect to a Git repository for their development tools, build systems, and other services. This is especially common if you develop on Mac or Linux. To support these scenarios, we’re updating Git repositories to support SSH keys. You can manage your keys on the web and connect from your favorite SSH enabled apps.

Git repositories in a TFVC Team Project

Many customers are actively using TFVC repositories and have a rich work item history and customization in their Team Project. To make it easy for these teams to start using Git, you’ll be able to create Git repositories inside a TFVC Team Project. You can create as many Git repositories as you need in your TFVC project or have a single large Git repository. It’s up to you.

Getting Started

To make it easier to get started, we’re optimizing the clone and empty repository experiences for Visual Studio, XCode, Eclipse, and the command line. If you using Visual Studio, there will be an “Open in Visual Studio” button when browsing code on the web so you can quickly clone the repository and look at a file locally.

In addition to these changes, we’ll continue to invest in our web experience to make it easier to use and faster. I hope you’re excited about these changes don’t hesitate to reach out with feedback, thoughts, and questions.

Thanks,
Jeremy Epling