简短的问题,然后是解释 我们想要创建补丁并仅包含由于 dotnet 应用程序的一些错误修复而在构建中发生更改的文件。补丁应该在涉及 SVN、Cruisecontrol.net 和 msbuild 的持续集成过程中自动构建。
我们这里有一个场景:我们想要维护一个使用持续集成在远程服务器上运行的 .net 应用程序。源代码位于 SVN 中,并有 3 个用于 DEV、QA 和 PROD 的不同存储库。我们的开发人员几乎每天都会进行新的错误修复,并在初始测试和满意后将更改合并到开发存储库中。解决某个问题或添加功能后的代码然后合并到 QA 存储库中。QA 代码是在 QA 机器上手动构建和测试的。在 QA 测试之后,我们将其合并到 PROD 中。使用它,QA 还为必须手动替换或更改的文件制作新补丁。然后将补丁部署在临时服务器上。在其上对其进行测试直到完美,然后将补丁部署在实际的远程服务器上。
为了寻求持续集成,我们现在尝试混合使用 CruiseControl.net 和 msbuild 来完成该过程。这个过程一直很好,直到我们必须从 QA 构建自动生成补丁的阶段。生成补丁后,我们会将它们放在 ftp 服务器上,然后将它们下载到登台服务器进行测试。问题,即从新版本生成补丁有几个方面。应用程序的解决方案文件有许多项目,并且使用 postbuild 事件将 dll 复制到启动应用程序 bin 文件夹中。所以我们在实际应用中有一个特定的目录结构,它本身就是6个或多或少相互独立的解决方案的组合。
我们尝试创建补丁的方式是搜索 svn 的日志以查找哪些文件已更改。然后我们正在解析它找到项目名称。然后,我们使用包含应用程序所有文件的映射文件,以发行版具有它们的特定方式将所有文件从该项目的 bin 目录复制到补丁文件夹。
如果我们有 svn 和 Cruisecontrol.net,任何人都可以建议一个更好或更简单的方法来制作补丁。或任何其他开源工具来做到这一点。
希望问题很清楚