Call for Discussion: New Project: Skara -- investigating source code management options for the JDK sources

Weijun Wang at
Mon Jul 30 11:13:10 UTC 2018

Joe said on Jul 28:

> In Mercurial, when a file is moved, its history is restarted, meaning a full copy of the file is stored. Therefore, lots of file moves will tend to make a Mercurial repo get disproportionally larger. In the JDK, many files were moved in JDK 9 for modularity and large numbers of files were moved again in JDK 10 for the repo consolidation.
> The Mercurial representation of JDK 8 GA takes about 412 MB, JDK 9 GA ~808 MB, and JDK 10 GA ~1553 MB.

So this is related to Mercurial's design that a rename equals to a remove and a create.

Maybe we can fix Mercurial to make this a real "move", and I doubt if there is a space-time tradeoff here.


> On Jul 30, 2018, at 5:55 PM, Aleksey Shipilev <shade at> wrote:
> On 07/30/2018 11:47 AM, Weijun Wang wrote:
>> Also, do you happen to know a solution to make the repo smaller after so many renames? Aleksey's
>> page [2] shows the xz file for jdk8u is 232M but the one for jdk/jdk is 752M.
> This seems to be the classic space-time tradeoff.

More information about the discuss mailing list