This is my test attempt at converting the SDL Subversion repository to
Mercurial.
http://hg.icculus.org/icculus/SDL/
Feel free to clone, but this repo may be destroyed and rebuilt again
while I play around. Eventually, this will move to libsdl.org to replace
the Subversion repository.
This is just SDL; I have filtered out the other projects and spent a
great deal of time hand-editing the Subversion dump to clean up the
revision history, and will be packaging them in separate repos. This
repo has the 1.3 branch as the default, and SDL-1.2 as a named branch.
All revision history in the Subversion repo (back to 1.2.0) is in the
Mercurial repo.
Upon cloning this repo, I was a little horrified to see how much disk
this eats:
$ du -hs SDL-hg
100M SDL-hg
One hundred megabytes!
This is worth knowing though: that seems like a big collection of bytes,
but that’s a working copy plus every change we made to SDL, ever.
For comparison, here’s a fresh checkout of the trunk and
branches/SDL-1.2 from Subversion:
$ du -chs SDL SDL-1.2
50M SDL
37M SDL-1.2
86M total
So it’s not too bad, then, especially when you consider that the svn
checkout didn’t have any of the GSoC (etc) branches (or any of the
revision history at all).
Here’s all you really need to know about Mercurial.
-
The best quick-start tutorial I’ve read is Joel Spolsky’s new
hginit.com. You should read it. It’s interesting and funny. I’ve read a
lot of quick-start tutorials, and no other does it as well. -
The important thing to know, as a subversion user, is to stop fearing
branching. Mercurial works best when you have a bunch of little ad-hoc
branches weaving around each other. -
When committing new changes, keep the first sentence of the log
comment short and on a line by itself. It’ll be used for the summary. -
More or less, most commands work like Subversion’s, and there is a
TortoiseHg to match TortoiseSvn, if that’s you’re thing. But once you
start using things that Subversion can’t do (bisect, record, shelve,
rollback, queues, etc), you’re going to find yourself annoyed when you
have to work with a Subversion repository and can’t use these extra
features.
Comments and questions welcome.
–ryan.