2011-04-18 69 views
0

虽然我正在重新设计分支机构,但其余的团队仍继续处理代码。 Rebase持续约1-2小时。我在上下文菜单中通过右键单击要合并的文件夹进行合并,因此在此处没有特别之处。TFS 2010 - 重新启动分支机构时退房

团队成员签出代码,改变它,但他们没有签入。这种方法有什么风险?这种情况的最佳做法是什么?你的团队如何处理这种情况?

+0

你能不能给我们介绍一下您使用衍合分支的过程中一些信息呢? – 2011-04-18 12:36:21

+0

嗨詹姆斯,我更新了问题。 – rovsen 2011-04-18 14:13:14

回答

4

我认为你的建议是一个相当标准的方法,只是为了确保我理解这个问题,这里是一个场景。

有一个Main分支。从此Main分支2开发分支已创建(devAdevB)这些分支将用于更改2个独立项目的代码。

devA开发已达到稳定状态,并已合并到Main分支。现在您想要将Main中的更改合并到devB

devB中,开发人员一直在对代码更改进行编码并检出多个文件。您不想让开发人员检查对devB的更改,并且您不希望在重新绑定发生时启动代码冻结。

如果开发人员在定期,因为分支产生变化devB被检查,你会看到porbably合并冲突,当您尝试合并从Main分支devA变化。有人熟悉这两个“项目”的代码和要求将需要帮助解决这些合并冲突。冲突解决后,您可能需要检查代码是否编译以及是否有单元测试运行并通过。如果你有编译错误或单元测试失败,那么这将需要调查。

一旦您很高兴从MaindevB的合并已经成功,那么在devB中检出的文件的开发人员可以开始签入更改。如果他们已经签出的文件没有作为Main合并的一部分进行更改,那么这些文件将按正常方式签入。但是,如果他们检出的文件已经作为合并的一部分进行更新,TFS将调出合并冲突解决工具,开发人员需要先解决任何冲突,然后才能检入代码。

希望上述内容与您目前所遵循的过程完全接近?如果我错过了任何东西,或完全错过了这一点,请告诉我。

这并不是很好,但它是一种常用的方法,我们使用它。

这种方法的风险在于,您最终可能花费大量的时间来修复合并冲突,特别是如果您有很多开发人员在很多分支中更改代码的代码量很大。

为了缓解任何问题,最好尽早和尽可能地重新布局。早期,因为如果您将所有内容都保存到devA's项目的末尾,那么这些更改可能会对devB产生重大影响。通常是因为每次合并的冲突次数最少,因此解决冲突更简单,也更不容易出错。

建立“持续集成”版本也将有所帮助,因为您会尽早看到编译问题。如果您使用的是TFS 2010,那么门控检查也可能有所帮助。

我不是100%肯定,这个回答你的问题,所以让我知道如果我错过了什么

+0

你已经完全理解我的问题了。感谢你的回答。 – rovsen 2011-04-21 14:15:02

相关问题