我们在Subversion中使用功能分支进行开发,这是一种非常方便的方法,可以将代码保留在尚未为主线准备的版本控制中.但是,每当我将功能分支修订版合并到主线时,都会很痛苦.现在我将完成以下步骤:
查看原始功能分支修订到新目录
使用Beyond Compare等工具在我当前的开发和原始功能分支目录之间执行区别
查看新目录的当前主线修订
将新/已更改的文件合并到当前主线目录中.
使用我的IDE执行差异,以确保所有文件都已正确检出/添加到subversion
编译和测试
承诺
在我看来,在这个过程中有很多错误的余地,每次我走过这些步骤都会让我感到紧张.当然,在我的功能分支上检查所有内容都是Subversion,因此任何步骤的错误都是可以恢复的.
我相信Subversion 1.5有一种方法可以将分支合并到主线,但我们仍在使用Subversion 1.4.还有哪些人用来简化将Subversion中的功能分支合并到主线开发中的步骤?你在使用不同的工具吗?您是否正在使用Subversion 1.5中的合并功能?
我现在正在使用Subversion 1.5的新的--reintegrate功能,我认为这很棒.它比手动方式更容易,更不容易出错.然而,缺点是新的合并功能要求存储库和客户端都在1.5上,并且1.5存储库的更改不允许1.5以外的任何客户端使用...所以为了获得合并功能,它基本上是全有或全无的情景.
至于您的原始问题,您只需要非常严格地跟踪在开发过程中您已合并到工作分支的主要分支修订版.但是,即使使用1.5的--reintegrate功能,确保主分支的重新集成的工作副本看起来正确并在提交之前进行编译仍然很重要.它基本上使生活变得更加容易(特别是对于寿命更长的功能分支),因为您不必严格记录已更改的内容以及何时将其他分支的更改集成到功能分支中.
subversion.tigris.org上的发行说明文档编写得非常好,我建议简要地查看它,看看1.4和1.5之间的所有变化,以及对新合并工具的良好描述.