题
我们应该如何在源代码控制中构建一个具有原型+应用程序“真实”实现的项目?
我们为一个新项目开发一个原型,并将其存储在源代码管理中(Subversion,但问题应该与此无关),在我们所有项目的主存储库中具有以下结构:
[ProjectName]/ trunk/ src/ UIPrototype/ branches/ tags/
我们与实习生一起进行领域逻辑的设计,并计划在下周开始实施领域逻辑。
我们考虑过以下几种可能性:
一个完全独立的存储库(实习生有几周的源代码控制/Subversion 经验)
我们的主存储库中的一个单独的项目
一个分支(例如
branches/prototype
)在现有项目下进行原型然后使用trunk
为了“真正”的实施
对于这种情况,您会推荐什么结构?
解决方案
我在一个拥有多个程序的大型软件部门担任了数年的 SCM 经理,我的建议是建立一个分支,原因如下:
如果原型不起作用,您可以让分支在此时死亡。
如果原型有效,那么您可以将其合并回主干以进行初步开发
如果需要开始主要项目的工作,您可以继续处理原型
Subversion 非常适合处理所有这些场景。您还可以使用标签来帮助控制您的代码。这些应该尽可能具有描述性,以便您之后的任何人都可以轻松确定代码的用途。
其他提示
我们所做的是拥有一个名为原型的单独存储库,其中放置所有测试/播放/实验/原型项目。如果某些东西值得,我们会将其移至自己的存储库。
我们有一个应用程序树,并且有一些标有“内部”的目录,这些目录表明不打算发货的东西。原型和内部工具都可以通过这种方式开发。此外,当我们根据原型的学习开始下一代“实时”项目时,原型代码始终可供参考。
不隶属于 StackOverflow