我的团队有十几名工程师,其中一些工作模块需要2-3周才能完成。
现在我们只在单元测试完成后才将每个模块集成到CVS的主分支。
这个问题是好的2-3周,代码只能在工程师的计算机上进行,并且不受版本控制。
使用的编程语言是C.
在版本控制下是否有任何优雅的方法来管理非单元测试的代码。
由于
詹姆斯
答案 0 :(得分:3)
您在“主要”分支机构办理登机手续前2-3周的过程并非违规,因为类似的重新设计“根管”工作(有时是严肃的重组工作)必要)。
但是,在版本控制之外的那段时间里,我会非常紧张。
强烈建议本地开发人员在2-3周内使用Mercurial或Git进行本地版本控制,然后您可以将“已完成”项目检入(主)CVS分支。它们真正为完全构建。
这就是我们的工作 - 它的工作原理,它使各个开发人员之间的差异和补丁以及协作变得非常简单。
(对我们来说,Mercurial是本地的,Subversion是“主要”版本控制系统。)
答案 1 :(得分:2)
...好了2-3周,代码只能在工程师的计算机上进行,并且不受版本控制......
对我来说,在版本控制之外进行编程就像驾驶倒档一样:技术上可行,但通常会适得其反。
从这个意义上说,我会说任何其他方法可以让你的开发人员持续将他们的工作保持在VC之下,而不是什么都不是优雅。为此,有许多已知的方法 - 谷歌搜索版本控制分支策略显示了大量资源,解释了您的选择和标准如何选择。
如果不进行试验,很难分辨出哪些选项更适合您的项目。在研究上面提到的资源时,我建议查看通常称为功能分支的详细信息。这个策略与您描述“需要2-3周才能完成的模块”的情况非常匹配 - 尽管我不打赌它最适合您的团队。
另请注意,至少对于“内部”开发人员而言,除了过时且不方便的CVS之外,您还可以选择使用版本控制系统。
答案 2 :(得分:1)
如果您的公司政策要求在办理登机手续之前对您的所有代码进行单元测试,我认为这是非常好的政策,您应该这样做:编写单元测试,甚至可能在编写代码之前。
但如果我误解了你并且只是在完成所有事情时应该有大型的测试会话,那么它太糟糕了。你肯定会遇到讨厌的集成问题。如果您无法更改该策略,请至少拥有您的本地VCS。此外,您可以使用“featureX_Enabled”开关进行配置,并在登记时尽量不要忘记将其设置为“0”。
无论如何,切换到Git或Mercurial,使用它们会更加痛苦。