[Adium-devl] Mercurial conversion status report
Peter Hosey
boredzo at adiumx.com
Mon Oct 20 18:01:35 UTC 2008
I've pretty much given up on fixing hg convert to process our repo
entirely in one run. It looks like it'll require substantial changes
internally to make it not consume too much memory.
So I did a test conversion in multiple passes (it resumes each time),
and got a working repo. Next, I decided to try a one-line commit to
test.txt.
It took more than 46 seconds.
You can imagine my shock, and my worry that we wouldn't be able to use
Mercurial after all.
Fortunately, it appears that this is only because Mac OS X doesn't
make all the files available immediately (attempting to read them will
block until they are). After a few minutes, commit finishes in under a
second, as it should.
So, that problem is resolved.
The next thing we need to consider is Trac:
http://trac.edgewall.org/wiki/TracMercurial
We will certainly use Mercurial 1.0.2 or later on the server, but the
last version of the Mercurial plug-in for Trac that works with Trac
0.10.x doesn't work with hg 1.0.x, according to that page. This is
another reason to try again to upgrade to Trac 0.11.
Around the same time as that, we should see how much bandwidth (more
precisely, how much time) it takes to clone a repo with full history
from the web server. If it's untenably large, we may have to trim back
to a much smaller repo, and keep the SVN repo for archival purposes.
In case you're wondering, the full history in Mercurial's format takes
up 1.8 GiB on disk. (It'll use less bandwidth than that over the
network, especially with compression.)
Currently, Adium does not build successfully from the converted repo
because Mercurial does not version-control empty directories, and we
have four. The failed build commands are:
CpResource "build/Debug/Adium.app/Contents/Resources/en.lproj/
Shared Dock Icon Images" "Resources/en.lproj/Shared Dock Icon Images"
CpResource "build/Debug/Adium.app/Contents/Resources/sl.lproj/
Shared Dock Icon Images" "Resources/sl.lproj/Shared Dock Icon Images"
CpResource "build/Debug/Adium.app/Contents/Resources/fi.lproj/
Shared Dock Icon Images" "Resources/fi.lproj/Shared Dock Icon Images"
CpResource "build/Debug/Adium.app/Contents/Resources/
en_GB.lproj/Shared Dock Icon Images" "Resources/en_GB.lproj/Shared
Dock Icon Images"
I think we can solve this by storing in those directories symlinks to
the un-localized images. Another solution would be to put a dummy file
in each directory, so that Mercurial has a file to track.
More information about the devel
mailing list