我们正在开发一个大型软件项目,其中包含大量项目,组件和库。我们的管理层已经决定,每次部署都必须保存整个系统的快照,以便在出现问题时我们可以轻松获得整个系统的确切版本。通常的解决方案是在每次部署后分支项目。顺便说一句,我们正在使用VS2008
,C#
和SVN
。但是,这也不是大量子项目和库的实际问题,这些子项目和库也有其版本并经过修改。
这个问题的一个答案是具有向后兼容性并始终修复主干版本上的问题,但在我们的情况下,无法测试系统的变化(软件是ITS系统,一旦系统是部署我们不能再进行整合测试了。)
更糟糕的是,出版物是模块化的,因此每次部署不同的组件组合时,都会进行本地化。
你是如何解决这些问题的?有没有可以提供帮助的工具?
答案 0 :(得分:1)
您可以使用像ivy这样的依赖关系管理系统 - 这实际上记录了您正在使用的每个dll的每个版本。
作为(非常)简要的概述,当你进行构建时(例如,使用nant),你可以挂钩常春藤来解决所有依赖关系,获得你需要的特定版本的dll。由于常春藤配置将在svn中,如果你得到一个较旧版本的代码,你也会得到一个旧版本的常春藤配置。
答案 1 :(得分:0)
我曾经在这个项目上工作。
我们曾经分支每个候选版本,并将应用于RC分支的错误修正报告给主干。这不是很方便,但是在我们决定将项目拆分为由类似maven系统管理的许多小而可爱的项目之前,我们找不到合适的替代方案。
也许使用一些与强大的测试程序相关的持续集成管理工具也可能有所帮助。