Team Foundation Server源控制结构

时间:2008-12-19 13:52:39

标签: version-control tfs team-project

5 个答案:

答案 0 :(得分:6)

我喜欢你将Sandcastle文件作为对象进行源和测试的想法,我会添加一个文档文件夹,然后包含sandcastle文件,以及可选的实际文档。

有明确的意见分歧,我相信我会因此而被投票(因为我以前)。我将生成的文档放在TFS中有几个原因:

  1. 您希望在每个版本中使用您的文档,并且使用TFS是一种简单的方法,可确保您的文档保持在正确的位置。
  2. 使用TFS存储它意味着每个人都知道去哪里获取文档。
  3. 有一件事我不知道我一直在努力解决的问题是第三方依赖的地方,可能是因为它们属于源代码所以它们适用于每个项目,尽管如果你想在项目中分享它们你可以添加一个新的顶级节点。

    修改

    对于我的二进制文件,我通常最终得到

    $ /第三方/公司/产品/版本/ Src的(可选)

    所以例如我有

    $ /第三方/       微软/         EntLib /            3.1            4       ComponentArt /         WebUI中/            2008.1 /              SRC

    我想添加源代码,我不得不修补我不喜欢的CA源代码,但是当第三方不修复错误时你必须诉诸于此。

答案 1 :(得分:4)

很棒的布局和解释。我一直在努力解决同样的问题。我结束了非常相似的结构。我的情况略有不同。

Development/
   Trunk/
      Binaries/  -- Shared libraries
      Source/
      Test/
      Docs/      -- Documentation
TeamBuildTypes/  -- Build definitions
  • 添加二进制文件夹允许您在分支中有一个位置,您的所有项目都可以引用共享库
  • 我们将文档放在这里,以便它可以与它的特定分支一起旅行。
  • 我们的构建定义处于开发级别,因为我们可以在一个位置为所有分支设置它们,但它肯定可以在分支级别上更有意义。
  

二进制文件(控件,库,   等)存储在源代码管理中?如果是这样,它应该是它自己的团队   项目

我认为他们肯定应该是源代码控制的,但我认为没有理由把它们放在他们自己的团队项目中。需要注意的一个问题是TFS出于某种原因对二进制文件略有不同。我遇到过在源代码管理中更新二进制文件的问题,但在其他机器上“获取最新信息”并不会导致文件更新。有时您需要执行“获取特定版本”并检查该特定文件的“覆盖未更改的文件”选项。

答案 2 :(得分:3)

您应该将TeamBuilds文件夹放在主干下。这在TFS2005中是不可能的,但微软在2008年修复了它......

原因在于您的构建版本可能会随着更新的版本(例如:新的打包方案,不同的测试等)而发生变化,这可能会使其与旧的维护版本不兼容。这就是为什么你应该将团队构建与代码的版本结合起来。

这样,假设您发布了1.0版本并将其放在Releases文件夹下。在开发主干中使用v2.0时,您将能够构建它并发布补丁(可能需要修改构建)

答案 3 :(得分:3)

对于你的二进制文件 - 显然唯一应该受版本控制的二进制文件是“第三方”程序集,你不是“构建”任何自动构建的一部分。如果你有自己的库,你的源代码在版本控制之下等等 - 你应该看看构建和同步的各种策略等。

然后我像Josh一样组织它们 - 然后使用分支将二进制文件“复制”到_ExternalReferences文件夹,该文件夹是解决方案树中.NET Project文件夹的对等文件。这是一种非常有效的服务器端方式,因为TFS版本控件只存储“Deltas” - 所以基本上这些二进制文件在许多项目中的每个“重复”基本上就像一个“指针”。

答案 4 :(得分:2)

我建议的一件事是不要使用团队构建的默认位置并将其包含在“branchable”级别中,因为当您因各种原因(例如代码促销)进行分支时,您希望构建脚本分支并与之同步。

此外,http://www.codeplex.com/TFSBranchingGuideII

也发布了一个新的更多情景指南