现在的位置: 首页 > 综合 > 正文

SVN冲突产生的原因

2017年08月03日 ⁄ 综合 ⁄ 共 586字 ⁄ 字号 评论关闭

svn是一个优秀的项目代码管理的工具。在实际项目开发流程大致是这样的:一般是分为trunk和branch两个分支的。trunk是主干代码,是项目在线上版本的代码记录,意味着每个trunk版本代码都是可用的,而且在需要回滚的时候,能够正确使用的,一般不直接在trunk上commit做代码修改的。而branch是trunk的一个分支,用来隔离对主干的影响,单独的做新日常开发的分支,在分支进行项目开发,当功能开发完,就可以将trunk的代码merge到branch中,验证合并代码的正确之后,就可以将branch的代码,右键merge,选择reintegrate
a branch,将开发的好的代码合回trunk,用于正式上线版本。

(1)假设项目是串行开发,则不可能会产生merge冲突的,因为svn每次的修改都认为是新,必然会去覆盖就可以了。

(2)而当大项目,多人并行多个分支开发,merge冲突就是经常发生的事。多人并行多个分支开发,有人先开发完毕,修改了代码,最终提交到trunk中,而当两个分支,同时修改了同一个地方,那svn就搞不清楚到底哪个才是需要保留的代码,因为代码冲突就产生,这是需要程序员自己去解决冲突的,换句话说,解决冲突就是帮助svn选择到底如何取舍两次被改的代码。

可以说每一次merge代码都是有风险的,因为你要去判断自己的代码和别人代码取舍和组合问题。

抱歉!评论已关闭.