Re: git-svnimport
- From
Jason Riedy <ejr@eecs.berkeley.edu>
- Date
- Feb 4, 2006, 02:47 UTC
- Message-ID
- <16255.1139021263@lotus.CS.Berkeley.EDU>
- In-Reply-To
- <200602031429.07894.jharrison@linuxbs.org>
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