SVN branch merge
来源:互联网 发布:空军飞行员知乎 编辑:程序博客网 时间:2024/06/05 15:00
虽然git日益流行,但是很多公司还是使用svn来管理代码。
在日常开发的时候,我们会建立分支,对一些猜想功能安排人员进行开发测试,待通过后需要合并到主干。
就这一场景,使用merge做一简单的解释。
首先假设服务器上已有trunk和branch:
http://server/apps/TestProj/trunk
http://server/apps/TestProj/branches/feature1_branch
我们在主干和分支并行开发。在分支添加了文件开发新功能,boss满意了,我们需要把新功能添加到trunk。
这时我们就需要使用merge了。
先解释下merge,很多人有一个“错误的概念”,其实merge相当于: diff then apply。
就是先比较指定版本的差异,并应用到当前工作区。
在上面的工作环境下,分支上的新功能是在分支创建后添加的,所以我们需要比较分支创建版本和新功能版本并应用到trunk的工作区即可。
如:
命令行下先进入trunk的工作区:
svn merge -r old:new http://server/apps/TestProj/branches/feature1_branch
版本号可以进入分支的工作区: svn log
old的版本号就是使用copy创建branch的版本号,可以使用参数快速查找: svn log -v --stop-on-copy
要注意new的版本号是 svn log中列出的最大的,而不是使用svn update显示的。
因为经过测试,svn update无论是在哪个工作区,显示的都是trunk的最终版本号。
使用完merge后,如果没有conflict,那么很好,继续commit一下,就算合并到主线了。
如果有conflict(如果分支和主干修改了同一个文件的某个位置),通常svn会提示并列出几种选项,
一般的我会选择postpone,然后到冲突的代码里去看,手动解决,然后再commit。
以上是个人的使用总结,有什么不对的地方,请大家多多指教!
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- svn branch、tag & merge
- svn merge和branch
- svn merge和branch
- svn merge和branch
- svn merge和branch
- svn merge和branch
- svn merge和branch
- svn merge和branch
- svn merge和branch
- svn merge和branch
- SVN branch merge
- SVN merge和branch
- svn merge branch
- svn merge和branch
- svn merge和branch
- svn merge和branch
- svn merge和branch
- svn merge和branch
- CXF 基础教程-------入门示例
- 网络编程——非阻塞模式(ioctlsocket)
- Difference between synchronized and reentrantlock? Pros and Cons [closed]
- Android创建新的视图(二)之创建复合控件
- 非常道
- SVN branch merge
- C# 将新打开的窗体置为最顶层
- c++学习看看
- 从程序员到项目经理(14):项目经理必须懂一点“章法”
- ExtJS学习笔记
- ASP中实现分页显示的七种武器
- JavaScript parseInt() 函数 eval函数及计算器加运算
- Android:Layout_weight的深刻理解,个人首发,欢迎转载和顶贴!
- 略谈各国企业的差异