在 TFS 中,如果你想创建一个个人分支来尝试你的想法,你必须在 TFS 服务器上创建一个分支——即使没有其他人需要访问你的代码。当你创建这个分支时,项目中的每个文件都将被复制——即使你的分支与原始分支相比几乎没有变化。现在,您在服务器和本地使用了两倍的磁盘空间!
这是真的吗,并且是非分布式 VCS 的缺点之一?
在 TFS 中,如果你想创建一个个人分支来尝试你的想法,你必须在 TFS 服务器上创建一个分支——即使没有其他人需要访问你的代码。当你创建这个分支时,项目中的每个文件都将被复制——即使你的分支与原始分支相比几乎没有变化。现在,您在服务器和本地使用了两倍的磁盘空间!
这是真的吗,并且是非分布式 VCS 的缺点之一?
两种说法都是错误的。(你在哪里读到这个?)
在 TFS 中,如果你想创建一个个人分支来尝试你的想法,你必须在 TFS 服务器上创建一个分支
不,如果你只是“尝试一个想法”,你并不总是需要一个分支。当然,这取决于你想做什么。将您的工作保存在服务器上以防止驱动器崩溃是 TFS 中的搁置集(其他 VCS 可能不提供任何类似的东西,这就是为什么您需要为那里的每个想法创建一个分支的原因)。您甚至可以与他人共享您的代码,而无需使用搁置集实际签入。即使是简单的版本控制也可以通过在搁置集的名称中包含时间戳来完成,但这很乏味,可能比创建分支更乏味;)在服务器上构建代码是搁置集可以做的另一件事。
您应该阅读 MSDN 上何时使用搁置集而不是变更集(某处有一篇文章)来决定是否需要新分支。
现在,您在服务器和本地使用了两倍的磁盘空间!
代码的复制只是虚拟地发生。TFS Server 后面的 SQL Server不会占用两倍的空间,除非每个文件都在这些分支中的任何一个上实际更改。在此之前,两个分支上的两个文件都将“指向”SQL Server 上完全相同的内存。如果您需要同时处理两个分支并将它们映射到您的工作区,那么您当然需要两倍的本地空间。对于我所知道的任何 VCS,两者都是正确的,因此这不是特定于 TFS 的问题。