Many Git Repositories, but one Team Project to rule them all
One of our current objectives is to dogfood one Team Project, with one default and eight feature Teams, each with its own Git repository, as shown below.
huh … ?
Here are a few questions you may be pondering over. The answers in italic are my “2 cents”, until the Version Control (ex Branching and Merging) Guidance adds the long awaited Git for TFVC User guide, with solid guidance.
|?||Why are we dogfooding separate repositories? It is (we believe) easier to combine Git repos, than to split them. The feature teams above, are working on multiple deliverables, which have few (if any) dependencies. Our decision to dogfood separate repos is intentional to “learn by doing”, not one based on practical guidance yet.|
|?||Where will we store large binary objects, i.e. videos? We were (and still are) dogfooding very large binary objects in a TFS hosted Git repository and found that the performance great. However, be careful! The objects, i.e. videos, become part of the history, which is cloned to every distributed.|
|?||Why Git? Are we moving away from TFVC? We learn by doing and therefore need to dogfood both the TFVC and Git repositories, as well as respective tooling in Visual Studio. No, we are not moving away from TFVC. We currently have one long-term Team Project, based on TFVC, used for daily operations, one long-term Team Project, based on TFVC, for archives, and two long-term Team project, based on Git, for Project Unicorn. In my opinion a healthy mix PS: We == Visual Studio ALM Rangers (aka.ms/vsarunderstand)|
creating multiple Git repositories
To create the multiple repositories proceed as follows:
- Using your favourite browser, go to your Visual Studio Online Team Project (Assets), and select the CODE.
1. Select Assets.
2. Select Manage repositories from the drop down.
3. Select New repository.
- Using New repository, create your repositories. In our case the whiteboard diagram asks for eight (8) new repos.
- Our resultant view on the server is as follows:
convincing Visual Studio Team Explorer that they exists
- Next we need to connect to our favourite Team Project (Assets) on VSO using the Visual Studio Explorer.
|1. Click Connect to view your Team Projects. 2. Click Refresh to force an update. In my case the new repos appeared after he refresh. 3. Note that the repositories are not yet cloned.|
- Clone each repository.
- Connect to each repository.
- Preferably add a README.MD Markdown file to the root of each repository.
- Commit your local changes, i.e. add README.MD file to your repo.
- Push your changes back to the server.
- Using one of the quick reference poster from the Version Control (ex Branching and Merging) Guide we can visualise this (1) clone, (2) add, (3) commit, and (4) push workflow (top right):
So far so good. Next we will work with our Version Control Guidance, the feature and the product teams to evaluate practical dos, don’ts and recommendations. Watch the space!