Making NetBeans' Mercurial More Manageable

Tom Wheeler <[email protected]> Wed, 2 Nov 2011 12:00:00 -0500
Newsgroups gmane.comp.java.netbeans.general
Message-ID <CAPsQDDJjaisoy_7tVxtQRtx+N5dP3Unsdhjv7pRJ+tboN5jdOA@mail.gmail.com>
One very common bit of feedback I've gotten from those participating
in First Patch -- from both developers and mentors alike -- is that
checking out the Mercurial repository takes an exceptional amount of
time, bandwidth and disk space.  This is particularly a problem in
countries where Internet infrastructure is less developed, though the
trend towards bandwidth caps/throttling/usage-based billing for
Internet service in the United States means this is a growing problem
here too.

To put this into perspective, the ZIP file containing all the sources
for NetBeans 7.1 is only around 170 MB.  In order to change even a
single line of code in NetBeans, you must check out the entire
NetBeans repository, which is more than fifteen times bigger at around
3 GB!

I know there was some discussion at one point about correcting this
problem by splitting the single repository (e.g. hg.netbeans.org/main)
into multiple repositories, each of which might carry only the things
relevant to a particular product (e.g. just the platform vs. all of
the IDE).  Another solution might be to have shallow clones, which
only pull a relevant portion of history by default and bring the rest
in as needed.

Can anyone update us on the status of those efforts and whether there
are specific things we might do to help this along?

Also, I wanted to mention that the Mercurial 2.0 was released
yesterday and it includes the "Largefiles Extension" [1].  As I
understand it, this could mean that NetBeans' custom solution [2] to
binary file storage might not be necessary in the future.

[1] http://mercurial.selenic.com/wiki/LargefilesExtension

[2] http://wiki.netbeans.org/HgExternalBinaries

-- 
Tom Wheeler
http://www.tomwheeler.com/