Mercurial Bundles
If you have a poor network connection that is preventing hg clone
from completing, you may want to try downloading a bundle of the repository you’re interested in. This is useful since a file download, unlike hg clone
, can be resumed if the connection is interrupted. Once you have the bundle, staying up-to-date shouldn’t take much time at all, if you keep up with it regularly.
This document explains the steps to setup the mozilla-unified repository using a bundle file. Be sure to replace “mozilla-unified
” with the project you’re working with as appropriate.
Download the bundle
Open https://hg.cdn.mozilla.net/ :
It lists up-to-date bundles for some of the repositories listed at https://hg.mozilla.net/ . Each row corresponds to each repository, and each column corresponds to each compression format.
Download the bundle file for the
mozilla-unified
repository:
Click the link in the “mozilla-unified” row, the “zstd (max)” column.
Setting up the repository
Once you have downloaded the repository bundle, follow the steps below to recreate the repository locally based upon that bundle.
Initialize a new repository (in a directory called
mozilla-unified
here):
mkdir mozilla-unified
hg init mozilla-unified
Un-bundle the bundle file to that repository:
Move the bundle file next to mozilla-unified
directory, and rename it to bundle.hg
.
cd mozilla-unified
hg unbundle ../bundle.hg
Get comfortable. Grab a coffee (or your favorite tasty beverage). Maybe a nap. This unbundling process is going to take quite a lot of time.
Create the repository’s config file
.hg/hgrc
, and add the following lines, so that Mercurial will automatically know where to pull changes from future updates. You can open the template config file in your editor by runninghg config --local --edit
orEDITOR=<editor-of-your-choice> hg config --local --edit
[paths]
default = https://hg.mozilla.org/mozilla-unified/
Update the repository to get all the changes since the bundle was created (this step also doubles as a check of the bundle integrity since if its contents are not exactly the same as what’s in the official repository then the
hg pull
will fail):
hg pull
Check out a working copy from your new up to date repository:
hg update
You now have a clone of mozilla-unified
that is identical to one made via hg clone
. You can adjust your build settings, or you can go straight ahead and build Firefox!
If at any point you are stuck, feel free to ask on Riot/Matrix at https://chat.mozilla.org in #introduction channel.