比来方才忙完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过来,这种方法也挺麻烦。

PR:Pull Request是GitHub上的一个功能,开源代码的供献者,经由过程提议一个Pull Request向社区供献代码。
预备Spark代码
一般来说,本身保护一套Spark代码,须要Fork下社区项目,在clone本身Fork的代码,进行开辟。我这里以Spark 2.2.0为例。
1、 clone本身Fork的仓库到本地
- # stanzhai是我的GitHub账号,大年夜家须要换成本身的仓库地址
- git clone https://github.com/stanzhai/spark.git
- cd spark
2、 添加一个名为upstream的长途仓库指向社区的版本库
A successful Git branching model
- git remote add upstream https://github.com/apache/spark.git
【编辑推荐】
- 若何基于Spark Streaming构建及时E?娼台
- Spring Cloud拭魅战小贴士:Ribbon的饥饿加载(eager-load)模式
- Apache Spark常见的三大年夜误会
- 大年夜数据分析技巧与拭魅战之Spark Streaming
- Spark Graphx 实现图中极大年夜团发掘, 伪并行化算法
3、 设置PR引用,编辑git设备vi .git/config,找到upstream,添加最后一行fetch
- [remote "upstream"]
- url = https://github.com/apache/spark.git
- fetch = +refs/heads/*:refs/remotes/upstream/*
- fetch = +refs/pull/*/head:refs/remotes/upstream/pr/* # 留意添加这行
4、 同步远端库,更新分支引用(每次归并前都须要履行)
- git remote update
5、 checkout一个2.2.0的保护分支
- 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,获得这个就可以直接归并代码了:
- git remote update
- git cherry-pick 2c5b9b1173c23f6ca8890817a9a35dc7557b0776
履行完,提示以下信息就表示归并成功了:
- ➜ spark git:(my-2.2.0) ✗ git cherry-pick 2c5b9b1173c23f6ca8890817a9a35dc7557b0776
- [my-2.2.0 529f5ea55ff] [SPARK-22083][CORE] Release locks in MemoryStore.evictBlocksToFreeSpace
- Author: Imran Rashid
- Date: Mon Sep 25 12:02:30 2017 -0700
推荐阅读
在日常平凡应用微信的时刻,大年夜家肯定拍了异常多的┞氛片和视频。删删选选整顿之后照样发明手机内存不敷用?你可能没有留意到微信的┞封些设置,今天就教大年夜家几招,只须要封闭微信这>>>详细阅读
本文标题:合并Spark社区代码的正确姿势
地址:http://www.17bianji.com/lsqh/37848.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示