答案 0 :(得分:6)
我喜欢你将Sandcastle文件作为对象进行源和测试的想法,我会添加一个文档文件夹,然后包含sandcastle文件,以及可选的实际文档。
有明确的意见分歧,我相信我会因此而被投票(因为我以前)。我将生成的文档放在TFS中有几个原因:
有一件事我不知道我一直在努力解决的问题是第三方依赖的地方,可能是因为它们属于源代码所以它们适用于每个项目,尽管如果你想在项目中分享它们你可以添加一个新的顶级节点。
对于我的二进制文件,我通常最终得到
$ /第三方/公司/产品/版本/ 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”级别中,因为当您因各种原因(例如代码促销)进行分支时,您希望构建脚本分支并与之同步。
也发布了一个新的更多情景指南