|
| Source Control (VSS / TFS) Case |
 |
Thu, 31 Jan 2008 04:57:01 -080 |
Scenario:
I have the following Visual Studio Projects
• Enterprise.LogLib – contains methods for reading and writing to various
types of log files (cvs, txt, xml, etc)
• Enterprise.ImageLib – contains methods for manipulating various types of
images (jpg, tiff, png, etc)
• Enterprise.LogViewer – windows application that allows users to view and
manipulate log files
• DemandingClient.ImageViewer – windows application that allows users to
view and manipulate images
The projects reside in Visual SourceSafe 2005 under the following paths
(assume checkins are well labeled)
• $/Enterprise/LogLib
• $/Enterprise/ImageLib
• $/Enterprise/LogViewer
• $/DemandingClient/ImageViewer
The projects are referenced as project references as follows
• Enterprise.ImageLib references Enterprise.LogLib
• Enterprise.LogViewer references Enterprise.LogLib
• DemandingClient.ImageViewer references Enterprise.ImageLib and
Enterprise.LogLib
Problem:
Enterprise.LogLib has a single method:
• Enterprise.LogLib.Log(int errorNumber);
The Enterprise.ImageViewer application is built, tested, and shipped to the
customer. After the application is deployed the Enterprise.LogViewer
application begins production.
During the development of the Enterprise.LogViewer application the
development team decides that the Enterprise.LogLib.Log(int errorNumber)
method is too specific. They remove the function and new log function
becomes:
• Enterprise.LogLib.Log(string format, params object [] parameters);
The Enterprise.LogViewer application is built, tested and shipped to the
customer. In the meantime, a bug is found in the DemandingClient.ImageViewer
application and the development team returns to the code to put out a
release. However, now, the DemandingClient.ImageViewer Development Team
finds that their code no longer builds.
Discussion and Questions:
Can Team Foundation Server help us?
• Would it be possible for the DemandingClient team to reload and build the
project file/source from the old LogLib and recompile within standard TFS
workflow (assuming there was a checkpoint)?
• Would the DemandingClient team be able to maintain project references
within their projects/solution?
• What would be the best way to structure the repository?
o Would the code for the Enterprise and DemandingClient Teams be in the
same repository?
o Would it be able to reside in the same solution as a project reference as
opposed to a compiled/versioned .dll so that it could be further modified and
then merged back into the top level as necessary?
• What would be a good strategy for branching within the repository?
|
| Post Reply
|
|
|
|
|
|
|
|
|
|