Team Foundation Server - 程序员指南

时间:2009-12-22 09:45:04

标签: tfs version-control

除了我之前的话题

  

How to use SVN, Branch? Tag? Trunk?

我想深入了解程序员应该/可以如何使用TFS。

对我来说最有趣的事情不是如何设置服务器,而是如何每天使用它。在软件工程领域,您的责任不仅在于代码,还在于架构,文档和其他领域。你需要收集你的作品,最好是在同一个地方。

所以这些是我感兴趣的点,我希望获得更多的知识:

  • 您如何构建TFS工作区/项目以支持许多不同的客户/项目,以及每个客户可能有不同的项目?
  • 将上述项目中的文件夹结构拆分为不同的部分,例如Code,Documents - >架构,要求和其他,还有什么,以及什么是一个很好的常用文件夹结构?
  • 易于浏览的存储库;同样,这里的文件夹结构很重要,但是这一点更多地针对存储库的不同探索者,而不仅仅是内置的Team Foundation Explorer。

这些只是我想要了解的几点。有关上述主题的初学者指南,深入指南和链接的建议将非常有用。请随意添加其他重要注意事项。

3 个答案:

答案 0 :(得分:13)

正如已经提到的,模式和实践指南是整个使用TFS的一个很好的指南。

http://www.codeplex.com/TFSGuide

但是,如果您想要专注于分支策略,您可能还需要查看VSTS Rangers组合的分支指南(尤其是第二个版本)。

如果您最终遇到上述问题未涵盖的具体问题,请记住您也可以访问TFS版本控制论坛寻求帮助。

http://social.msdn.microsoft.com/Forums/en/tfsversioncontrol/threads

答案 1 :(得分:8)

您是否参考过本指南: http://www.codeplex.com/TFSGuide

我刚刚为公司撰写了TFS指南,并遵循了该指南中的大多数最佳实践建议。

我们使用的结构是:

TeamProject1
    Main
        Source
            ClassLibrary1
            ClassLibrary2
            CommonCodeLibrary
            TeamProject1Web
    Releases
        Release1
            Source
                ClassLibrary1
                ClassLibrary2
                CommonCodeLibrary
                TeamProject1Web
        Release2
            Source
                ClassLibrary1
                ClassLibrary2
                CommonCodeLibrary
                TeamProject1Web
TeamProject2
    Main
        Source
            ClassLibrary1
            CommonCodeLibrary
            TeamProject2Web
    Releases
        Release1
            Source
                ClassLibrary1
                CommonCodeLibrary
                TeamProject2Web
        Release2
            Source
                ClassLibrary1
                CommonCodeLibrary
                TeamProject2Web
SharedTeamProject //this would represent a set of code that's used in other team projects
    Main
        Source
            CommonCodeLibrary
    Releases
        Release1
            Source
                CommonCodeLibrary
        Release2
            Source
                CommonCodeLibrary

基本上,我们在发布时将Main \ Source项目分支到Releases \ Releasex分支。

对于在多个项目中共享的代码,我们为该代码创建一个单独的团队项目,然后将其分支到各个团队项目中。在下面的示例中,SharedTeamProject表示共享代码。例如,我们将CommonCodeLibrary分支到各个团队项目的Main \ Source文件夹的教学中。

对于客户特定版本,您可以为它们创建适当的版本分支。

我认为最重要的是提出一个计划,让您的团队(大部分)同意,理解并愿意遵循。确保方案记录良好并遵循方案。结构的一致性是成功的源控制系统的关键之一。

答案 2 :(得分:3)

以下是我对你的观点的看法:

  • 首先是Team Project级别。最好遵循微软的建议:实体团队有独立的团队项目。对于客户特定的更改,我会从主干创建额外的分支。这允许您将所有错误修复和客户无关的更改合并到客户分支,而不会有太多麻烦。
  • 不要将文档放在源代码管理中,将它们放在可以在团队资源管理器中找到的Documents文件夹中。对于我要说的所有文档,请查看Sharepoint。
  • 尝试将文件夹结构映射到命名空间层次结构。这使得浏览非常容易。

请记住,设置TFS实际上取决于团队的规模,团队数量和代码库的大小。