【问题标题】:Team Foundation Server - A programmer's guideTeam Foundation Server - 程序员指南
【发布时间】:2018-01-17 10:57:22
【问题描述】:

除了我之前的话题

How to use SVN, Branch? Tag? Trunk?

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

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

所以这些是我的兴趣点,我想进一步了解:

  • 您将如何构建 TFS 工作区/项目以支持大量不同的客户/项目,并且可能为每个客户提供不同的项目?
  • 将上述项目中的文件夹结构拆分为不同的部分,例如代码、文档 -> 架构、需求等,还有什么,以及什么是一个不错的常用文件夹结构?
  • 易于浏览的存储库;同样,此处的文件夹结构很重要,但这一点更针对存储库的不同资源管理器,而不仅仅是内置的 Team Foundation Explorer。

这些只是我想进一步了解的几点。对初学者指南、深入指南和涵盖上述主题的链接的建议将非常有帮助。请随时为此添加其他重要的考虑因素。

【问题讨论】:

  • 我很想回答你的第一个项目符号问题,使用工作区来管理每个客户的多个项目。

标签: tfs version-control


【解决方案1】:

如前所述,模式和实践指南是整个使用 TFS 的绝佳指南。

http://www.codeplex.com/TFSGuide

但是,如果您碰巧想关注分支策略,您可能还需要查看 VSTS Rangers 整理的分支指南(尤其是第二版)。

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

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

【讨论】:

    【解决方案2】:

    您是否参考过本指南: 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 文件夹的教学中。

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

    我认为最重要的是提出一个您的团队(大部分)同意、理解并愿意遵循的方案。确保该计划被妥善记录并得到遵守。结构的一致性是成功的源代码控制系统的关键之一。

    【讨论】:

    • 在我看来,您缺少一个开发分支。
    • 除了代码之外,您在哪里存储其他数据?你上面的结构中没有这个。
    • @Gerrie - 我不同意。你看过我链接到的模式和实践指南吗?请参阅第 5 章,您会发现这是 Microsoft 认可的模式之一(请参阅场景 2)。 @Fillip - 您可以根据需要创建其他文件夹,但 TFS 与 SVN 相对的想法是项目级文档存储在共享点门户中。创建团队项目时,会专门为此目的创建一个共享点门户网站。这是让很多从 SVN 转向 TFS 的人感到困惑的事情之一,范式有点不同。
    • @dcp 这在简单的场景中可能是正确的,但如果您有两个团队在处理相同的代码来实现两个独立的新功能,您将需要一个或多个开发分支。
    • @Gerrie - 我明白你的观点,并同意它。我认为这取决于您的商店/团队规模。我在一家相当小的商店工作,所以上述结构对我们的团队很有效。不过,在您提到的场景中,您肯定需要更多分支。但他们确实在我链接到的指南中涵盖了这种情况。底线就是使用最适合您团队的东西:)。
    【解决方案3】:

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

    • 首先是团队项目级别。此处最好遵循 Microsoft 的建议:实体团队有单独的团队项目。对于客户特定的更改,我会从主干中制作额外的分支。这使您可以轻松地将所有错误修复和与客户无关的更改合并到客户分支机构。
    • 不要将文档放在源代码管理中,将它们放在可以在团队资源管理器中找到的 Documents 文件夹中。对于所有文档,我建议查看 Sharepoint。
    • 尝试将文件夹结构映射到命名空间层次结构。这使得浏览内容变得非常容易。

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

    【讨论】:

    • 你能像其他发帖者一样提供一些例子吗?更容易看到其他人如何以这种方式组织他们的工作。感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2010-10-11
    • 2018-08-30
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多