BT

Proposed Consolidation of JDK 10 OpenJDK Mercurial Repositories

by Michael Redlich on Oct 21, 2016 |

In an e-mail posted on the OpenJDK mailing list, Joe Darcy, JDK Engineer at Oracle, proposed a consolidation of their Mercurial (dubbed “Hg”) source control repositories for JDK 10 OpenJDK into a single repository.

JDK 9 OpenJDK is currently organized into an Hg “forest,” a collection of multiple related Hg repositories. Eight repositories make up the JDK 9 forest:

The motivation behind this proposed consolidation, as stated in JEP 296, is to eliminate the disadvantages of maintaining multiple repositories. For example, it is not possible to propagate a single bug fix that spans multiple repositories with the current forest arrangement. One advantage of a single repository provides the benefit of tracking changes to sets of files as opposed to individual files.

Alternatives proposed in the JEP were (a) staying with the current Hg forest, and (b) consolidating only a core subset of the repositories, but the latter was rejected. It was also decided to not include JavaFX into the Hg forest.

Despite posting anticipated Q&A in the proposal, a debate over scalability, performance, and other difficulties emerged from various contributors especially in this response in which a litany of concerns was presented. In an apparent attempt to bring the focus back to the “big picture,” Oracle language architect Brian Goetz, explained:

OpenJDK developers are not the only stakeholders here. By aligning more with the way the rest of the world develops -- all code in one linearized, transactionally updated repo -- it increases the feasibility / reduces the cost of tools like 'bisect' to determine where a fault was introduced. This reduces SQE costs and increases product quality -- something we all have a stake in. David Lloyd has pointed out other tooling-related benefits, such as making it easier to maintain a git mirror.

 

Most of the objections raised so far have been "(I think they will) make my life harder." Fair enough; people should be their own advocates. But let's not forget the significant benefits that accrue to *everyone* as a result, and keep those in mind when judging the pros and cons.  

This isn’t Oracle’s first attempt to clean up the OpenJDK Hg forest. In November 2013, Darcy proposed to “use an alternate forest arrangement for JDK 9 that will dramatically reduce the propagation time of fixes across the set of forests.”

Resources

A prototype was created to test consolidation of an Hg forest, and the supporting Python scripts (detailed below) are available for download.

  • convert.py: prepares for the unification by converting each repository in the forest into the appropriate format.
  • unify.py: unifies all the converted repositories from a forest into one repository.
  • verify.py: verifies that the file contents of the forest and the unified repository are equal at every tag in the history. This is done with the help of the diff(1) program.

The prototype contains eight repositories that will be combined into a single repository using the Python scripts. History, changeset comments, and original creation dates are preserved. The single repository will contain single top-level src directory. For example:

$ROOT/jdk/src/java.base
$ROOT/langtools/src/java.compiler

becomes:

$ROOT/src/java.base
$ROOT/src/java.compiler

Rate this Article

Relevance
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss
General Feedback
Bugs
Advertising
Editorial
Marketing
InfoQ.com and all content copyright © 2006-2016 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT

We notice you're using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.