我们是一个4人团队,并且在几年内离我们的舒适区不远,但我们正在成长,并希望赶上时代。我的任务是找到实现持续集成的最佳方式(自动构建,代码维护和新功能的分支等)。我们正在考虑从SourceSafe 2005切换到Subversion来处理我们的版本控制。从我读过的内容来看,Subversion是进行代码推广,分支和分支之间合并的更好选择。我们可能会使用以下产品:
为代码促销和功能分支组织存储库的最佳方法是什么?以下是我们当前SourceSafe结构的示例:
我们应该像这样结构吗?
由于我们的大部分软件仍然是COM(VB6)并且需要注册(使用regsvr32),二进制文件是否应该受版本控制?当我们需要处理不同的分支(可能具有不同的COM兼容性)时,我们应该如何处理注册/取消注册组件?
我们离开了吗?
答案 0 :(得分:2)
首先,不要使用顶级trunk分支标签,使用每个项目的trunk分支标签,如下所示:
/Projects
/CashCowProject
/branches
/tags
/trunk
/vs
/doc
这意味着跟踪工具可以查看http://svn/Projects/CashCowProject并查看该项目的所有活动,而不会在任何其他项目上获得任何活动。它还会强制您控制项目之间的引用,这意味着如果没有主干中的条目,您的顶级项目将不会更改。
当项目相互引用时,使用svn:externals从您需要的库项目中提取标记。使用红豆书中描述的供应商分支来处理第三方库,甚至是二进制文件。
在SVN中保存库二进制文件是可以的。可能想为此考虑一个单独的存储库,尽管我们不这样做。
对于代码促销,为特定版本保留一个稳定的分支,并且只从trunk到该分支合并,然后从该分支进行标记。这将为您提供每个版本中可用内容的可审计记录。
如果您不打算引入源代码并构建它,可以将COM二进制文件保留在那里。您可以为tortoise编写一个升级后脚本,它将遍历注册它找到的任何COM对象。