The project I'm working on includes two what I'll call Libraries of code developed by other teams. Using TFS, we would simply include their TFS folders i开发者_如何学Cn our workspaces and include their Visual Studio projects in our solution files. If the other team checked-in a file to the libraries we would immediately get their changes.
Obviously you can see the downside of this arrangement (we have no idea when someone will introduce a breaking change - and neither do they).
For better isolation from the day-to-day changes of these Libraries I plan on branching the Library code. We plan on treating these branches as read-only - we'll never make our own changes.
At certain times we would want to refresh these branches when each Library is at a stable point. (Most teams are using SCRUM, so this would be the code from the end of each Library team's Sprints). I expect that each Library team would label their code at these points.
Branching the first time seems easy. But what about refreshing the branches with each Library's labeled release?
Do I Merge? How do I specify that I want to merge only the changes from a certain label? Assume that I'll Merge sometime after the Library was released so that the "latest library code would have changes I wouldn't want - unstable changes for their next release).
OR - should i just re-branch each time?
OR - DO something else?
We still want to build their code ourselves - so I'm not looking for any suggestions about checking-in binaries for each library's release.
The TFS merge wizard has an option to merge from a specific version, there you can select to merge from a particular label, changeset or date.
精彩评论