【问题标题】:Best approach to managing software versions via code branches?通过代码分支管理软件版本的最佳方法?
【发布时间】:2010-03-26 21:35:27
【问题描述】:

我想定制一个具有精简版和企业版的现成软件。功能几乎相同,因此我的扩展自定义可以同时适用于两者,但我必须为每个版本重新编译,因为它们具有不同的版本程序集。

有人可以帮我建议如何维护它吗?我正在使用 Visual Studio 2008 和 Visual SVN。我应该创建 2 个完全不同的解决方案,创建一个包含重复项目的解决方案,还是创建分支?分支似乎是优雅的路线,但想法是什么?从主干创建一个“精简版”和“企业版”......主干是“精简版”?

【问题讨论】:

  • 这个问题主要是基于意见。如果您愿意接受人们对您的其他问题的回答,您可能会有更好的时间让人们分享他们的意见。其他 6 个问题,您从未接受过答案...
  • 抱歉,我没有意识到它是这样工作的。我会接受我的其他问题。感谢您的提醒!
  • 顺便说一句..意见还可以。我正在寻找建议、建议和经验。

标签: c# .net visual-studio-2008 svn branch


【解决方案1】:

这取决于您的代码在两者之间的差异程度。在最好的情况下,如果只是链接到不同的程序集版本,请使用 NAnt 或类似工具,并为每个程序集创建一个构建目标。

如果生活不是那么乌托邦式,我会在一个分支上创建三个项目:一个包含所有通用代码的类库,另一个只包含非共享代码的每个版本的类库。

如果共享代码依赖于这些多版本程序集,那么据我所知,您或多或少会被困在手动操作中。这意味着维护每个目标的分支并在它们之间进行定期合并以保持共享片段的同步。使用分布式 CMS 可以减轻合并的痛苦,创建一组单元测试将有助于减少这些跨项目合并引入的错误量。

【讨论】: