This repository houses the scripts I've been trying to hack together to make it feasible to regularly and painlessly mirror the OpenJDK mercurial repos to Github.
I haven't achieved this goal yet, but I'll try to document here what I've figured out and done so far, and what I think is left to do.
I'm working with both Git and Mercurial installed, as well as the hg-git Mercurial plugin, which does the actual work of converting the Mercurial history to the Git format.
There are three different challenges involved with doing this.
As best I can tell, OpenJDK organizes itself into sub-projects, and
many of these projects have their own dedicated set of Mercurial
repos, (e.g., jdk, jaxp, corba, ...), so that they seem to be
functioning similarly to git branches.
This suggests that a helpful mirroring strategy would combine
shared-history mercurial repositories into a single github repository,
e.g. a single jdk repository with many branches.
The initial conversion of a large Mercurial repo (e.g., one of the jdk repos) takes hours with the hg-git plugin. I assume that incorporating incremental changes is fast after that, but this means needing to have the Mercurial repo sitting on disk long term, which brings us to:
Keeping all the OpenJDK repos on disk in a git-converted state would require dozens, maybe hundreds, of gigabytes, depending on the exact strategy employed. Much of this is redundant data, but due to how Mercurial storage works I don't think there's any easy way around that.
There's some other details in my head but I'm going to stop writing now.