当使用分支方法在TFS中分支代码时,代码是物理上还是逻辑上分支的?顺便说一下,我的意思是它只是一个变更集(更改的增量)还是复制了所有文件?
答案 0 :(得分:24)
不会在TFS数据库中复制分支文件。在修改分支版本之前,不会创建该文件的新版本。这就是为什么在大型项目上创建分支并不需要永远。
<强>来源:强>
分支下的第四段解释说它不会创建相同文件的单独副本:
创建分支使用很少 额外的存储空间。服务器 最小化所需的存储空间 保留一份相同内容的副本 无论有多少不同的文件 包含在文件夹中。所以,如果你 拥有100个1 MB文件的副本 的文件是相同的,服务器 将只存储1 MB,而不是100 MB。什么时候 你创建一个新的分支和提交, 新分支中的所有文件 与文件中的文件相同 源分支指向相同的 内容。结果是一个分支 消耗很少的额外费用 存储空间和存储空间 仅在分支文件时扩展 变得与源不同。和 即使文件发生变化,团队 Foundation Server使用了 区分引擎来分析变化 文件之间再次优化 存储空间。
Microsoft分支指南PDF:
http://geeks.netindonesia.net/downloads/etc/TFS-Branching.pdf
答案 1 :(得分:3)
简短回答:分支以逻辑方式存储,而不是父代的直接副本。
答案很长:VS ALM Ranger的Bill Heys写了一篇详细的博客文章,描述了分支和文件历史如何存储在TFS中。