我们正在开发一个由大量项目、组件和库组成的大型软件项目。我们的管理层已经决定,对于每个部署,都必须保存整个系统的快照,这样当出现问题时,我们就可以轻松地获得整个系统的确切版本。通常的解决方案是在每次部署后对项目进行分支。顺便说一下,我们使用的是VS2008、C#和SVN。但这不是实际的信标,因为有大量的子项目和库,它们也有自己的版本并被修改。
这个问题的一个答案是具有向后兼容性,并且总是在主干版本上修复问题,但在我们的情况下,不可能测试系统的更改(软件是ITS系统,一旦部署了系统,我们就不能进行任何集成测试)。
更糟糕的是,out deploments是模块化的,所以每次部署不同的组件组合时都会有本地化。
你是如何解决这类问题的?有没有什么工具可以帮助你呢?
发布于 2010-07-01 15:51:52
你可以使用像ivy这样的依赖管理系统--这基本上记录了你正在使用的每个动态链接库的每个版本。
作为(非常)简要的概述,当您进行构建时(例如,使用nant ),您可以挂接ivy来解析所有依赖项,从而获得所需的特定版本的dll。由于常春藤配置将在svn中,因此如果您使用较旧版本的代码,也会使用较旧版本的常春藤配置。
发布于 2010-07-01 15:32:53
我曾经做过这样的项目。
我们曾经对每个候选版本进行分支,并将应用于RC分支的错误修复报告到主干上。这并不是很方便,但我们找不到一个像样的替代方案,直到我们决定将项目拆分成许多小而可爱的项目,由一个类似maven的系统管理。
也许使用一些与强大的测试例程相关的持续集成管理工具也会有所帮助。
https://stackoverflow.com/questions/3155763
复制相似问题