C# 存储TFS中未来更改的正确方法是什么?(直到某一天才能实施)

C# 存储TFS中未来更改的正确方法是什么?(直到某一天才能实施),c#,tfs,C#,Tfs,我在一家受政府实体监管的公司工作。它们每年指定特定的规范,并且经常进行需要更改大部分代码库的更改 也就是说,我们喜欢事先进行更改,以避免在最后一刻实施时的压力和匆忙 将代码与所有其他相关代码一起存储在一个存储桶中的最佳方式是什么,这样我们在等待截止日期时仍然可以进行功能和错误修复? 在主存储库之外创建一个私有分支是否可行carlosfigueira 我不确定。这是一个团队的努力,所以私人也允许他们工作吗?我们都创建单独的私人分支机构还是一个大型分支机构? 我最大的担忧是试图将所有这些更改与最新的

我在一家受政府实体监管的公司工作。它们每年指定特定的规范,并且经常进行需要更改大部分代码库的更改

也就是说,我们喜欢事先进行更改,以避免在最后一刻实施时的压力和匆忙

将代码与所有其他相关代码一起存储在一个存储桶中的最佳方式是什么,这样我们在等待截止日期时仍然可以进行功能和错误修复?


在主存储库之外创建一个私有分支是否可行carlosfigueira


我不确定。这是一个团队的努力,所以私人也允许他们工作吗?我们都创建单独的私人分支机构还是一个大型分支机构?
我最大的担忧是试图将所有这些更改与最新的错误修复和功能合并。看来这将是一场噩梦。如果私有分支对此有所帮助,我将研究它们。

您应该创建一个单独的分支(我们称之为功能分支)。进行更改并不断地从Main合并到此功能分支,这样当您准备合并回Main时就不会出现巨大的合并问题。当您准备合并并实现更改时,请将功能分支合并到主分支,然后最终合并到发布分支


这属于配置管理的范畴。你应该读这本书。我不一定什么都同意,但他有一些好的建议

CM的其他优秀资源还有USENET新闻组

有两种方法可以做到:

  • 发布时开发主干和分支(或发布候选)。

    这种方法的优点是,正在进行的开发已经在主干中。必须完成的唯一合并是将错误修复从一个版本传播到主干和其他版本

  • 每次发布分支。在分支上开发,并在发布时合并到主干中。

    在这种方法中,在开始发布工作时,从主干上切下一个新分支。当工作“准备发布”时,它会被合并回主干中,因此主干表示发布的时间线。这里的优点是主干和它的历史保持相当干净。所有错误启动等都保存在分支中。缺点,特别是如果同时进行多个发布,则合并回主干可能会很痛苦,如果两个发布在主干中相互重叠,这就是竞争条件

  • 每个功能的分支。组装功能以组成发行版。

    这与上面的类似,但更细粒度。同样的优点/缺点也适用

对于听起来您想要做的事情,我将从您现有的“已发布”代码行创建一个新分支。在新代码行中进行挂起的更改。当它推出的时候,把它合并回主代码行-基本上是你的新功能的一个分支


另一种方法是在当前代码库中实现新特性“暗”,并使用一个配置开关,允许您在选择时启用它们。这样可以避免分支,并使您可以轻松启用该功能。这确实需要额外的QA工作,因为他们需要回归测试所有东西,以确保在“黑暗”模式下,系统仍能像更改之前那样工作。当然,他们还必须在启用新更改的同时测试这些更改,以确保它们正常工作。

在主存储库之外创建一个私有分支行吗?我不确定。这是一个团队的努力,所以私人也允许他们工作吗?我们都创建单独的私人分支机构还是一个大型分支机构?为什么要等到最后期限才能签入更改?您是否需要更改功能和错误修复的代码实现,以反映您将要实现的更改?我必须等待,因为政府授权在确切日期之前不显示任何更改。但是,我们不能在6个月内冻结代码。是否还要将更改传播到分支,以便我们总是被迫合并每个签入?强制合并?这是个好问题。除非最新的TFS对此有规定,否则您只需依靠强制执行department policy.Shoot即可。我想强制它,因为我们团队中的大多数人偶尔会有大脑放屁,跳过一段代码是不好的。不过谢谢,这给了我一些指导。嗯,有一个选项可以合并所有代码,而不仅仅是最新的签入。如果你担心遗漏一些东西,你可以每天合并并得到其他人的更改。我认为这将是我的方法。谢谢