作家
登录

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

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


比来方才忙完Spark 2.2.0的机能测试及Bug修复,社区又要宣布2.1.2了,国庆时代刚好有空,过了一遍2.1.2的相干JIRA,发明有不少重要修复2.2.0也能用上,接下来须要将有效的PR合到我们内部保护的2.2.0分支上了。

整合尚未归并到社区的PR

经常有同伙问我是怎么把社区的PR合到本身分支上的,我之前跟他们介绍的做法是基于PR拉分支,在IDEA中单个文件diff归并。如不雅是有时合下社区代码,这种方法也不算太费事。然则如不雅PR中修改的文件较多,或者要归并多个PR过来,这种方法也挺麻烦。

归并Spark社区代码的┞俘确姿势

PR:Pull Request是GitHub上的一个功能,开源代码的供献者,经由过程提议一个Pull Request向社区供献代码。

预备Spark代码

一般来说,本身保护一套Spark代码,须要Fork下社区项目,在clone本身Fork的代码,进行开辟。我这里以Spark 2.2.0为例。

1、 clone本身Fork的仓库到本地

  1. # stanzhai是我的GitHub账号,大年夜家须要换成本身的仓库地址  
  2. git clone https://github.com/stanzhai/spark.git  
  3. cd spark 

2、 添加一个名为upstream的长途仓库指向社区的版本库

A successful Git branching model

  1. git remote add upstream https://github.com/apache/spark.git 

【编辑推荐】

  1. 若何基于Spark Streaming构建及时E?娼台
  2. Spring Cloud拭魅战小贴士:Ribbon的饥饿加载(eager-load)模式
  3. Apache Spark常见的三大年夜误会
  4. 大年夜数据分析技巧与拭魅战之Spark Streaming
  5. Spark Graphx 实现图中极大年夜团发掘, 伪并行化算法
【义务编辑:未丽燕 TEL:(010)68476606】

3、 设置PR引用,编辑git设备vi .git/config,找到upstream,添加最后一行fetch

  1. [remote "upstream" 
  2. url = https://github.com/apache/spark.git  
  3. fetch = +refs/heads/*:refs/remotes/upstream/*  
  4. fetch = +refs/pull/*/head:refs/remotes/upstream/pr/* # 留意添加这行 

4、 同步远端库,更新分支引用(每次归并前都须要履行)

  1. git remote update 

5、 checkout一个2.2.0的保护分支

  1. git checkout -b my-2.2.0 v2.2.0 

我们创建了一个基于2.2.0的my-2.2.0分支,下面的示例是将社区PR归并到my-2.2.0分支中。

提交给社区的PR大年夜致分为2类:

  • PR被接收,且被归并到社区的仓库
  • PR没有归并到社区仓库,(代码没问题,有可能commiter还没来得及处理)

整合已被社区归并的PR

被归并到社区的PR已经做了rebase处理,对于这种PR,归并到本身的分支中是异常简单的工作,直接应用git的cherry-pick就可以搞定。

我们以这个卡片为例:https://issues.apache.org/jira/browse/SPARK-22083

这个卡片被标记为resolved,并且PR也被合到社区仓库了:https://github.com/apache/spark/pull/19311,我们打开这个链接,到页面下方,找到这个地位:

加载中...

打开后,会跳转到这个地址:https://github.com/apache/spark/commit/2c5b9b1173c23f6ca8890817a9a35dc7557b0776,地址中后面的一长串就是我们须要的commit-id,获得这个就可以直接归并代码了:

  1. git remote update  
  2. git cherry-pick 2c5b9b1173c23f6ca8890817a9a35dc7557b0776 

履行完,提示以下信息就表示归并成功了:

  1. ➜ spark git:(my-2.2.0) ✗ git cherry-pick 2c5b9b1173c23f6ca8890817a9a35dc7557b0776 
  2. [my-2.2.0 529f5ea55ff] [SPARK-22083][CORE] Release locks in MemoryStore.evictBlocksToFreeSpace 
  3. Author: Imran Rashid 
  4. Date: Mon Sep 25 12:02:30 2017 -0700 

      推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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