The largefiles extension in Mercurial improves storage and bandwidth efficiency when dealing with large binary files. By keeping the previous revisions of a large file on the central repository, it avoids the download of unused revisions of the large file to your local clone. In other words, a revision of the large file is not neccesary when you pull from the remote repo, and it is downloaded only when you update your local repo to the particular revision. The downside of this extension, however, is that you need a central repo, which stores all the versions of your large files.

To use it, simply enable the largefiles extension in the configuration file, as it has been bundled with Mercurial 2.0 and above. The best thing is you can easily convert your original normal repo to a largefiles repo, using the lfconvert command:

$ hg lfconvert oldrepo newrepo

On the flip side, you might want to convert a largefiles repo back to a normal repo. Use the same lfconvert command but add the –to-normal option.

$ hg lfconvert --to-normal oldrepo newrepo

At the time of this writing, Bitbucket does not support Largefiles extension. (https://bitbucket.org/site/master/issue/3843/largefiles-support-bb-3903).

The default manual page for Largefile extension: http://mercurial.selenic.com/wiki/LargefilesExtension.