作家
登录

合并Spark社区代码的正确姿势

作者: 来源: 2017-10-12 12:36:08 阅读 我要评论

  • 2 files changed, 153 insertions(+), 13 deletions(-) 
  • 如不雅归并的代码正好也被你悛改了,那么竽暌剐可能会出现冲突,这种情况正常解决冲突,然后git commit就可以了。

    因为一个PR可能包含多次提交,整合未归并到社区的PR就比较麻烦了。Spark的骨干代码天天都有更改,直接比较两个不合的分支更改平日会比较大年夜,我们须要将PR中n次提交的代码的所羽蹦更梳理出来,然后在做整合。

    我们以这个PR为例:https://github.com/apache/spark/pull/19301,这个PR实现上还有待改进,但可以正常工作,是以还没合入社区,我们将这个PR归并到my-2.2.0分支,须要进行以下操作:

    1. # 更新长途仓库及版本引用信息 
    2. git remote update 
    3.  
    4. # 基于某个PR创建一个分支,这里的19301是这个PR在GitHub上的id 
    5. git checkout -b pr-19301 upstream/pr/19301 
    6. git checkout pr-19301 
    7.  
    8. # PR分支大年夜都基于master开辟,以upstream/master分支为基准,从新apply PR分支上的修改 
    9. git rebase upstream/master 
    10.  
    11. # 经由过程diff提取此次PR的patch文件 
    12. git diff upstream/master > pr-19301.patch 
    13.  
    14. # 到目标分支打patch 
    15. git checkout my-2.2.0 
    16. git apply --reject pr-19301.patch 
    17.  
    18. # 查看上一步apply的状况 
    19. git status 
    20.  
    21. # apply有可能会不成功,尚未apply的patch被存放到*.rej文件中,须要手动处理,最后提交即可 
    22. git commit -a 
    23.  
    24. # 清理 
    25. rm pr-19301.patch 
    26. rm *.rej 
    27. git branch -D pr-19301 

    参考

    Git 分支 - 分支的衍合

    Useful Developer Tools

    最后

    废话到此,这篇文┞仿是介绍,若何高效地归并Spark社区PR到本身保护的分支(常说的打Patch),当然,针对其他开源项目,该办法同样实用。

    上述办法不克不及包管合PR 100%成功,原则上你的分支和社区代码约近,冲突越少,越轻易处理。Spark 2.x的代码有很大年夜的更改,把针对2.x的PR打到1.6的分支上,往往是个麻烦事。



      推荐阅读

      关闭微信这四个功能,帮你手机节约大量空间

    在日常平凡应用微信的时刻,大年夜家肯定拍了异常多的┞氛片和视频。删删选选整顿之后照样发明手机内存不敷用?你可能没有留意到微信的┞封些设置,今天就教大年夜家几招,只须要封闭微信这>>>详细阅读


    本文标题:合并Spark社区代码的正确姿势

    地址:http://www.17bianji.com/lsqh/37848.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)