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/