2009-02-19 14 views
2

我们是一个4人团队,几年来一直没有离开我们的舒适区,但我们正在成长,并希望赶上时代。我一直致力于寻找实现持续集成(自动构建,代码维护分支和新功能等)的最佳方法。我们正在考虑从SourceSafe 2005切换到Subversion来处理我们的版本控制。从我读过的内容来看,Subversion是进行代码升级,分支和分支之间合并的更好选择。我们可能会使用下列产品:Subversion中代码升级和功能分支的最佳设置?

  • VisualSVN服务器
  • TortoiseSVN的(与Windows资源管理器的集成)
  • 的VisualSVN(用于与Visual Studio 2005集成)
  • SVNVB6(集成在Visual Basic 6 )
  • 的FinalBuilder

什么是组织代码的推广和特征库的最佳途径分枝?这是我们目前的SourceSafe结构的一个例子:

    • Visual Studio 2005个的项目
      • 项目名
        • 解决方案文件,项目文件和代码文件在这里
        • \ bin
          • \发布
            • 编译版本在这里的二进制文件
    • 的Visual Basic 6项目
      • 项目名
        • 项目文件和代码文件在这里
        • 编译的二进制文件(.dll,.exe文件,.OCX)这里
    • 文档
      • 文档文件在这里

我们应该像这样构造吗?

    • 分支(每个从主干支链)
      • Development.FeatureA
      • Development.FeatureB
      • 测试(带的FinalBuilder夜间内置???)
      • 生产(每晚用FinalBuilder ???内置)
      • Production.BugFixA(反向整合到生产分公司,测试分支,树干???)
    • 标签
      • Development.v1(每次成功构建后的标签)
      • Development.v2
      • Development.v3
      • Test.v1
      • Test.v2
      • Test.v3
      • Production.v1
      • Production.v2
      • Production.v3
    • 干线(开发代码 - 用的FinalBuilder夜间内置)
      • 视觉Studion 2005个项目
        • 项目名
          • 解决方案文件在这里
          • 项目名
            • 项目文件和代码文件在这里
      • 的Visual Basic 6项目
        • 项目名
          • 项目文件和代码文件在这里

由于我们的软件有很大一部分仍然是COM(VB6)和需要(使用REGSVR32)进行登记,应二进制是版本控制?当我们需要处理不同的分支(可能具有不同的COM兼容性)时,我们应该如何处理注册/注销组件?

我们是否脱离了商标?

回答

2

首先,不要使用顶级主干分支的标签,使用每个项目的主干分支的标签是这样的:

/Projects 
    /CashCowProject 
    /branches 
    /tags 
    /trunk 
     /vs 
     /doc 

这意味着跟踪工具可以看看http://svn/Projects/CashCowProject,看到的所有活动项目,并没有在任何其他项目上进行任何活动。此外,它还会强制您控制项目之间的引用,这意味着您的顶级项目不会在没有中继入口的情况下更改。

当项目互相引用时,使用svn:externals从您需要的库项目中提取一个标记。使用供应商分支机构在红豆书中描述处理第三方库,甚至二进制文件。

在SVN中保存库二进制文件是可以的。可能想考虑一个单独的存储库,虽然我们不这样做。

对于代码升级,为特定版本保留一个稳定的分支,并且只有从树干合并到该分支中,然后从该分支标记。这将为您提供每个版本内容的可审计记录。

如果您不打算引入源代码并构建它,则可以将COM二进制文件保留在那里。你可以为乌龟编写一个升级后的脚本,它将围绕注册它找到的任何COM对象。