Created attachment 273375 [details] Build log with 'time' call added The 'Creating working directory' part of mercurial_src_unpack() does take a lot of time for me and keeps CPU 100% busy. That seems at least a little odd to me, as checkout should be I/O-bound. I'm hitting that with dev-lang/python hg ebuilds from the python overlay. My guess is that hg does some kind of repository repacking during the repo->checkout clone. If that's the case, I think we should look for a more efficient solution for checkouts. I'm attaching the short build log for interrupted python:2.7 build. I prefixed the 'hg clone' call with a 'time' command.
To be honest, it seems that replacing '--rev' with '--updaterev' makes this faster (less CPU- and a more I/O-intensive).
Using python:3.2::python. --rev: real 7m9.001s user 6m17.056s sys 0m13.373s --updaterev: real 0m27.064s user 0m8.394s sys 0m4.642s --rev with warm cache: real 6m35.514s user 6m12.527s sys 0m11.608s
Created attachment 281933 [details, diff] Patch to use faster --updaterev As proven earlier, using --updaterev is much faster than --rev. This patch updates the eclass to do so.
(In reply to comment #3) > Created attachment 281933 [details, diff] > Patch to use faster --updaterev > > As proven earlier, using --updaterev is much faster than --rev. This patch > updates the eclass to do so. Thanks for your awesome work on this issue, committed: revision 1.16 date: 2011-08-03 21:01:16 +0200; author: nelchael; state: Exp; lines: +4 -4; commitid: 65f4e399afc4567; Use --updaterev instead of --rev, thanks to Michał Górny (mgorny@gentoo.org), see bug #367481. =============================================================================