使用源代码控制时的常见情况是具有开发分支以及版本化发布分支.我们使用CVS,HEAD作为开发分支,以及一个名为eg-release-6-2的分支,用于当前版本的产品.
新功能的开发仅限于开发分支,但有时必须在开发分支和当前版本分支中检查错误修复.这有时会非常繁琐,所以我正在寻找实现这一目标的实用方法.
当要提交的文件在两个分支上同步时,我特别希望快速"提交这些分支"解决方案.
(我们使用CVS作为我们的源代码控制系统,因此任何特定于CVS的答案都很好.但是,看看其他源代码控制系统是否可以提供更好的方法也很有趣.在客户端我们使用Eclipse,因此Eclipse解决方案是好的.但是如果你有一个非Eclipse解决方案,那也没关系.)
将修复程序应用于所需的最旧版本分支.然后将更改合并到下一个版本分支,依此类推,直到从最后一个版本分支合并到HEAD.
假设您的产品的最旧版本是1.0,并且您还有1.1和1.5版本.HEAD将添加下一版本的新功能.如果在1.0中发现错误,则将修复程序应用于1.0分支.从1.0合并到1.1分支.从1.1合并到1.5分支,最后从1.5分支合并到HEAD.
从分支到分支的合并比将修复手动应用于每个分支更好.
使用CVS,您必须手动跟踪合并的版本,以便在下次合并时不包含相同的修订版.
如果更改为使用Subversion,则从分支到分支的合并更容易.Eclipse的subversion工具将跟踪您之前合并的修订,大大简化了在两个分支之间重复合并的任务.
从CVS更改为Subversion很容易(ish).你不会是第一个做出这样举动的人.