Speeding up “hg clone”

If you use TryServer, or ever check in code into any RelEng supported branch, you need to read this quick post from a few days ago.

On Friday, catlee enabled “hg share” on our RelEng slaves. Sounds boring (or exciting) depending on your perspective. What matters to most people reading here is knowing it reduced the wall-clock time for every try build by about 25mins. To be very precise, its removed ~25mins off the ~30minute “hg clone” step, which happens before the compile and link phase can start… Each and every time we build.

This is great for three reasons:

  • everyone gets their try builds faster (great).
  • by completing this current job quicker, the same slaves are available sooner to start working on the next try job. (extra greatness!).
  • this reduces load on hg.m.o, which means that the remaining cloning is completed quicker by the less-heavily-loaded hg.m.o server. (even extra goodness!!).

NOTE: To start with, this is only on linux and OSX10.6 (coming soon to win32 and OSX10.5) and for now, its only on Tryserver builds (coming soon to nightly, release, etc builds). Every time this change is rolled out across another portion of the RelEng infrastructure, expect to see everything get just a little speedier.

Send flowers, chocolate, beer or even just a brief thank you note to catlee and bhearsum!

2 thoughts on “Speeding up “hg clone””

  1. just a suggestion, but why hg clone at all? can’t you reuse a local copy of the repo or copy the .hg folder out of another local working copy? hg share requires one to get its speedup anyway…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.