Some projects I work with haven't yet abandoned Subversion. I try to tolerate it as much as I can, but sometimes (if I need local commits, or if there is heavy merging involved) it just won't do. Thankfully, I have bzr-svn to make my life less miserable.
The thing is, though; how to do the initial branching (“checkout” for those still stuck in svn terminology)? Because bzr-svn tries too hard at being atomic, and we all know SourceForge's Subversion server is made of purest fail. If the server decides to disconnect you in the middle of the operation, you lose all the (potentially hours of) work until that point.
After much frustration, I figured out the way to go with that.
First, branch from revision 0: bzr branch -r 0 https://crossfire.svn.sourceforge.net/svnroot/crossfire/server/trunk server-svn-trunk. Now you have a local branch that is already usable (well, usable as a branch, there will obviously be nothing in the working tree). Here lies the greatest trick, because while getting revision 0 doesn't actually pull any revisions, it makes bzr-svn do most of its hard mapping work.
Then get inside the branch, and pull the revisions in batches of (in my experience) no more than 500: bzr pull -r 500 && bzr pull -r 1000 && bzr pull -r 1500 etc. If something fails, you don't have much left to recover from.
You may be asking, if it's that painful, why do I bother? Simple: because it's only painful in the initial branching. After it's all up and running, it will be a lot less messy than dealing with svn, especially if I have non-trivial merging to perform. (Which, in this case, I do.)