SVN conversion questions

Jeff Squyres jsquyres at cisco.com
Mon Mar 24 10:42:37 CDT 2008


Greetings, and thanks for all the work on Mercurial!

The Open MPI project is considering changing away from Subversion and  
we're evaluating a few other SCM's, to include Mercurial.  We have a  
goodly-sized SVN repo; we're almost up to r18000 in our SVN repo,  
spanning probably a few dozen committers -- a "du -sh" on the svnroot  
shows about 450MB.  We have the SVN-traditional /trunk, /tags, and / 
branches trees in the repo, but we also have a few other top-level  
directories:

- /tmp -- for short-lived branches (private)
- /tmp-public -- for short-lived public branches
- /vendor -- for 3rd party vendor imports (per the SVN 3rd party  
import methodology)

In order to let our developers experiment with Mercurial, I did a  
trial conversion of our SVN repository to Mercurial using the  
"convert" extension (on the svnroot filesystem itself; not over  
HTTP).  After RTFM'ing a bit, I got it to work nicely.  Woot!

However, I have a few questions about the resulting Mercurial  
repository:

1. It looks like nothing outside of /trunk, /tags, and /branches was  
imported.  Is there a way to get it to import the other top-level dirs?

2. On the hg repo result, I see the following branches:

$ hg branches
default                        12553:4c250886b062
v0.9                           12552:85fe9937f2cc
v1.1                           12427:2bdc7351f3ad
v1.2                           12047:e9980d1705d9
v1.2lanl                       11939:cc24fbaef002
v1.0                           6437:8c89240a7697
v1.2.3                         11937:809ed8576ae2 (inactive)

The v0.9, v1.0, v1.1, v1.2, and v1.2lanl branches are all expected.   
But v1.2.3 is not.  Specifically:

$ svn ls https://svn.open-mpi.org/svn/ompi/branches
v0.9/
v1.0/
v1.1/
v1.2/
v1.2lanl/

So why is v1.2.3 listed separately, and what does "(inactive)" mean?

2. Our layout in the /tags directory may be a bit unconventional -- we  
have subdirs for each major release series' tags, like this:

$ svn ls https://svn.open-mpi.org/svn/ompi/tags
v1.0-series/
v1.1-series/
v1.2-series/
$ svn ls https://svn.open-mpi.org/svn/ompi/tags/v1.0-series
v1.0.0/
v1.0.1/
v1.0.2/
$ svn ls https://svn.open-mpi.org/svn/ompi/tags/v1.1-series
v1.1.0/
v1.1.1/
v1.1.2/
v1.1.3/
v1.1.4/
v1.1.5/
$ svn ls https://svn.open-mpi.org/svn/ompi/tags/v1.2-series
v1.2.0/
v1.2.1/
v1.2.2/
v1.2.3/
v1.2.4/
v1.2.5/

But the hg convert extension still managed to pick up some of the tags:

$ hg tags
tip                            12553:4c250886b062
v1.2.5                         12026:983af2eb8dc1
v1.2.4                         11996:38355f2966f5
v1.2.2                         11910:bfff71e6d781
v1.2.1                         11892:8121aceeda27
v1.2.0                         11844:5f785b73c205

How do I get it to pick up the rest of the tags?  Or since we're using  
an unconventional tags layout, do I need to go add the tags manually  
after the conversion?  There's only a few, so it's not a huge deal to  
do them manually, but I thought I'd ask anyway.  :-)

If it helps, I put the stdout/stderr from running "hg -v --debug  
convert ..." here (I didn't attach because even bzip'ed, it's still  
700k+):

     http://www.open-mpi.org/~jsquyres/unofficial/hg-convert-output.txt.bz2

Thanks!

-- 
Jeff Squyres
Cisco Systems



More information about the Mercurial mailing list