Subject: Re: git-svnimport

From: Jason Riedy <[email-masked]>
Date: Fri, 03 Feb 2006 18:47:43 -0800

And Jason Harrison writes:
 - I am trying to import from an svn repository into a git repository using 
 - git-svnimport.  So far my attempts have failed.  Here is what I have done so 
 - far.
 - 
 - git-svnimport svn://svn.debian.org/demi/
[...]
 - git-svnimport -T demi svn://svn.debian.org/demi/
[...]

It seems git-svnimport requires one level of directory 
structure.  Running 
  git-svnimport -T bin svn://svn.debian.org/demi/
gives me the contents of the bin directory while (noisily)
ignoring everything else.  I think svn repositories
usually have a structure with branches in one directory,
tags in another, and its version of HEAD in yet another.

Looking through the git-svnimport source makes it appear
difficult to just snarf just one directory (maybe /) out 
of a svn repository.  Actually, it makes everything svn-
related appear difficult.  Why should I worry about
memory management by default in Perl?!?  It'd be nice if 
there were an git-svnimport-trivial that just snarfed a 
single URL without tags or branches.

I have to deal with a few repos with bizarre directory 
structures but _no_ branches or tags, and I found a work-
around that may be good enough.  Mirroring the repos using
svm (or svn-mirror, from SVN::Mirror) then importing the
mirrors works, but it gives an extraneous first commit.
Example derived from the svn-mirror/svm man page:
  env SVMREPOS=${HOME}/svm svn-mirror init mirror/demi \
        svn://svn.debian.org/demi
  env SVMREPOS=${HOME}/svm svn-mirror sync mirror/demi
  git-svnimport -v -T mirror/demi file://${HOME}/svm

That may spew messages about unrecognized paths if you 
mirror a few repos, but it should work.  Syncing and re-
running git-svnimport appears to keep things up-to-date, 
but I haven't had much opportunity to test that.

SVK (same author as SVN::Mirror) might work for creating
a mirror, possibly without the extraneous first commit, 
but I couldn't figure out the right -T and URL options 
for git-svnimport.

Jason