Re: git-svnimport
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}/svmThat 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