@Rays
2017-09-29T19:03:45.000000Z
字数 1385
阅读 1537
语言开发
Oracle
Java
摘要: Oracle的JDK架构技术负责人Joe Darcy宣布OpenJDK 10软件仓库群(Repository Forrest)完成最终合并。这一合并是近一年前建议提出的,意在降低管理大量软件仓库群的开销。这些软件仓库是在OpenJDK发展史上经历次分裂生成的,并将在OpenJDK 9及以前的版本中继续存在。为此,JDK中还创建了用于在合并和未合并版本间移动更改的工具。
正文:
Oracle的JDK架构技术负责人Joe Darcy宣布OpenJDK 10软件仓库群(Repository Forrest)完成最终合并。这一合并是近一年前建议提出的,意在降低管理大量软件仓库群的开销。这些软件仓库是在OpenJDK发展史上经历次分裂生成的,并将在OpenJDK 9及以前的版本中继续存在。为此,JDK中还创建了用于在合并和未合并版本间移动更改的工具。
在这次合并操作之前,OpenJDK曾分裂为多个不同的Mercurial软件仓库群(通常也被称为Hg软件仓库,即“汞”),其中包含了如下的主要平台组件:
这导致了多个问题,例如不能以原子方式对多个软件仓库应用漏洞修复(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的项目,例如Amber和Valhalla。但这些项目的合并版本有望尽快推出。
查看英文原文: Oracle Consolidates the OpenJDK 10 Repository Forest