SVN中branch的合并和打patch(1)

       最近要在hadoop2.4上面上线hdfs raid,但是之前hdfs raid是作为svn 的branch开发的,领导希望通过patch的方式将hdfs raid功能打进trunk里面去,这里涉及到svn branch和trunk的合并问题,以下是hdfs raid 打patch的具体过程。

1、保证当前 hdfs raid 的branch分支是clean的,也就是说使用svn status看不到任何的本地修改。

2、将trunk中所有的patch打进trunk,并提交这些patch

3、命令行切换到trunk目录,执行:

svn merge https://example.com/hadoop-2.4.0/branch/hadoop-2.4.0-hdfs-raid/

将branch分支上的改动merge回trunk下。

当然在merge你也可以指定Branch上那些版本变更可以合并到trunk中,命令如下:

svn merge https://example.com/hadoop-2.4.0/branch/hadoop-2.4.0-hdfs-raid/ r117893:HEAD

以上示例中是将hdfs raid branch从版本117893到当前版本的所有改动都合并到trunk中。

当然你也可以将trunk中的某些更新合并到hdfs raid branch中,还是同样的方法。

4、如果出现merge冲突则进行解决(http://zccst.iteye.com/blog/1765519),然后就可以将hdfs raid branch的代码基于trunk打patch了,命令:

svn diff > hdfs-raid.patch

这样打patch的时候发现只能打hdfs修改部分的代码,而raid部分新加的代码打不进来,需要进行以下操作:

svn add hadoop-tools/hadoop-raid/
执行svn status,发现hadoop-tools/hadoop-raid/target下面的文件也被add了,这部分文件是不需要提交到svn的,需要撤销svn add,执行以下命令:
svn revert --recursive hadoop-tools/hadoop-raid/target

在执行svn status,这个时候发现只有需要的文件被add了,然后执行打patch命令:

svn diff > hdfs-raid.patch
这样一来,就把所有的文件都打进了patch。


说明:如果在打patch时出现以下提示:

Hunk #1 succeeded at 1254 (offset 23 lines).
Hunk #2 succeeded at 1794 (offset 23 lines).

可以参考http://blog.csdn.net/longerzone/article/details/16967579进行解决。


参考链接:

http://www.cnblogs.com/huang0925/p/3254243.html

http://zccst.iteye.com/blog/1765519

http://blog.csdn.net/longerzone/article/details/16967579




发布了79 篇原创文章 · 获赞 18 · 访问量 52万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览