3. 这对你意味着什么?
开发团队多年里成功使用Subversion分支和合并,但是合并跟踪提供了许多好处:
合并跟踪添加了审计/跟踪能力(那些代码合并了,何时,何地?)。许多组织因为管理目的需要这个特性。
合并跟踪减少了错误和管理费用。团队会因为Subversion的合并跟踪功能提高生产力。
经常合并很重要。两个开始相同的文件会随着时间变得很不一样,不同的越多,越难以合并。如果经常合并,增量的区别会比较小,会易于合并。合并跟踪可以使得易于经常合并。
许多选择Subversion的公司采用限制分支的策略,他们不能从好的分支策略和并行开发中得到好处,例如:他们选择在主开发线开发一个风险很大的新特性,结果是项目成员要处理经常的构建错误。
终的好处:一些公司还没有使用Subversion,而使用传统的昂贵的工具,他们在等待合并跟踪。
4. Subversion 1.5的合并跟踪
Subversion 1.5记录合并时发生的事情:它会跟踪合并,所以下一次Subversion会记住上一次合并的事情,这个特性支持了下面的用例:
重复合并:本周将分支合并到另一个分支,下一周再做一遍。Subversion会记住已经合并的东西,而且只合并新的修改。
冲突解决的自动合并。Subversion可以自动完成合并的大多数工作,但是合并不可避免的带来冲突,Subversion的内部合并算法不能解决。如果这样,Subversion会告诉用户手工解决冲突。Mark Phippard的讲了这个问题。
Cherry picking:合并只针对一个或部分修改,而不是所有的修改。
记录手工合并:有时候用户会手工合并一些东西(使用编辑器从一个文件拷贝代码到另一个文件),Subversion 1.5具备明确添加手工合并的能力,所以合并跟踪信息依然完整。
合并回退:取消一个合并。合并经常不是很完美,你会发现一些事情出了问题,Subversion允许你取消合并。
合并审计:合并数据会自动添加到提交日志(Mark Phippard也讲了这个问题)。
5. GUI客户端和合并跟踪
如果Subversion的GUI客户端支持它,合并跟踪会真的非常强大。GUI客户端会利用合并跟踪特性让合并易于使用,而且对所有用户都更加接近。CollabNet在一个Eclipse的合并跟踪客户端上工作,未来的几天可能会有一个预览,openCollabNet这里。
Subversion 1.5对客户端有一个反馈,例如:有时候Subversion不能自动合并两个文件,需要开发者解决”合并冲突”,Subversion会告诉客户,由客户来决定怎样做,例如Subclipse会将冲突文件发送到Eclipse的图形化diff工具,所以用户可以解决这个冲突(它实际上进行了3方 diff,但是那超出了本文的范围)。
6. 合并跟踪早期采用计划
为了加快Subversion 1.5的合并跟踪特性的开发,CollabNet在openCollabNet开始了一个Merge Tracking Early Adopter Program,在这个程序里你可以看到:
Subversion合并跟踪设计文档。
包含合并跟踪特性的Subversion 1.5预发布程序
一个包含合并跟踪历史的实例Subversion版本库
一个与CollabNet的Subversion提交者和其他人讨论这个特性的论坛
缺陷报告和改进请求
很快也会发布GUI客户端
你可以在这里找到程序:http://merge-tracking.open.collab.net
7. 下面是什么?
合并跟踪的主张很直接:”Subversion以前没有这个功能,现在有了”,你准备好了吗?
如果你正在因为不想处理麻烦的手工合并跟踪而为分支踌躇,你或许可以重新思考一下分支策略,来充分利用在不同分支并行开发的好处。在9月26日, CollabNet会组织一个关于分支策略的webinar,CollabNet的Subversion顾问Bob Jenkins和Auke Jilderda会解释不同的分支策略,并展示Subversion 1.5如何支持他们。这里注册。
合并跟踪改进了合并的质量,添加了跟踪能力。加入Merge Tracking Early Adopter program,现在开始学习这个新特性。下载我们的客户端并使用,它将会帮助我们为Subversion 1.5做好准备。
如果你因为等待合并跟踪而还没有部署Subversion,现在是你离开你的遗留工具而使用Subversion的时候了。
8. 背景:CollabNet与合并跟踪
CollabNet强烈的投入到合并跟踪特性的开发:
CollabNet组织了需求收集的客户峰会(2006年1月)。
CollabNet雇员编写了大多数规格。
CollabNet领导了合并跟踪特性的开发力量。
我们开始了Merge Tracking Early Adopter Program。
CollabNet开发了合并跟踪的GUI客户端