git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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}/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
Previous: Jason HarrisonNext: Martin Langhoff
Message 2 of 4 in “git-svnimport”
  1. Jason HarrisonFeb 3, 2006
  2. Jason RiedyFeb 4, 2006
  3. Martin LanghoffFeb 4, 2006
  4. Martin LanghoffFeb 4, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.