BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Oracle完成OpenJDK 10软件仓库群的合并

| 作者 Abraham Marín Pérez 关注 8 他的粉丝 ,译者 盖磊 关注 2 他的粉丝 发布于 2017年10月9日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Oracle的JDK架构技术负责人Joe Darcy宣布OpenJDK 10软件仓库群(Repository Forrest)完成最终合并。这一合并是近一年前建议提出的,意在降低管理大量软件仓库群的开销。这些软件仓库是在OpenJDK发展史上经历次分裂生成的,并将在OpenJDK 9及以前的版本中继续存在。为此,JDK中还创建了用于在合并和未合并版本间移动更改的工具。

在这次合并操作之前,OpenJDK曾分裂为多个不同的Mercurial软件仓库群(通常也被称为Hg软件仓库,即“汞”),其中包含了如下的主要平台组件:

  • root;
  • corba;
  • hotspot
  • jaxp;
  • jaxws;
  • jdk;
  • langtools;
  • nashorn

这导致了多个问题,例如不能以原子方式对多个软件仓库应用漏洞修复(Bug Fixes)。在OpenJDK合并完成后,只会有一个软件仓库,并复制在三个开发线上:

其中,Client线和HotSpot线的开发也涵盖了整个OpenJDK软件仓库,只是保存为不同的开发线,因为在这些领域上的工作一般不会影响OpenJDK的其它领域,也不会被其它领域所影响。保持一个独立的开发线,只在有需要时才与主分支(Master)同步,这将简化Client线和HotSpot线代码的开发。

合并还会简化一些通用的开发任务。例如,要从代码仓库群中检出一个本地拷贝,目前或者需要使用tclone(是Hg树扩展的一部分,用于处理代码仓库群),或者需要使用get_source.sh脚本。而使用合并结构后,只需要一个简单的检出操作即可实现。另一个例子是创建变更集(Changeset),目前为止依然需要使用hgforest.sh工具,实现将同一Hg命令应用到群中的所有代码仓库。

不幸的是,尽管新合并的代码仓库具有很多的优点,但是管理代码仓库群的工作并未完全结束。OpenJDK 9使用的依然是旧的群格式,这意味着对于要应用到多个版本的Java上的更改(很多情况下通常是安全更新),依然需要应用到群上以及合并的代码仓库上。为解决这个问题,Oracle的软件工程师,也是OpenJDK的提交者(Committer),Erik Joelsson创建了一个工具,可以将一个补丁在合并格式与非合并格式间作相互转换

最后需指出的是,首次合并工作中并未包括一些基于OpenJDK 10的项目,例如AmberValhalla。但这些项目的合并版本有望尽快推出。

查看英文原文: Oracle Consolidates the OpenJDK 10 Repository Forest

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT