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

git-svn starting with an empty svn repository

From
PLPenny Leach <penny@mjollnir.org>
Date
Feb 24, 2009, 13:43 UTC
Message-ID
<20090224134325.GA10719@mjollnir.org>
Dear list,

This is maybe an abuse of what git-svn is designed to do, but nevertheless I need to do it.

I'm working with a project (Moodle) that still uses CVS for its upstream VCS. The friendly folk at Catalyst in NZ run a git import of this, that a lot of the community uses as their (read only) upstream instead of CVS.

So far so good.

However, now for various political reasons, I must (at least) publish changes to SVN. I'm going to be patch trading a lot between my work branches, and Moodle's CVS directly and I don't want to lose the power that git gives me while doing that. So I want to keep git as the tool I use for development, that acts as a go-between for me between CVS and SVN.

So what I'd really like to do is something like this:
- clone from Catalyst's git mirror
- push that to SVN using git-svn
- keep working, committing patches to Moodle CVS, and pulling from Catalyst
  regularly, while pushing both my local changes and new pulled upstream
  patches, to SVN, using git-svn

The problem seems to be that I'm starting out with an *empty* SVN repository. Almost all of the documentation I've found on this topic is for going from an existing SVN repository to git.

Theoretically at least, the opposite direction should also be possible, but I'm having a hard time figuring it out. I followed the steps outlined in the comments here: http://quirkygba.blogspot.com/2007/10/using-git-with-google-code-hosting.html

But I didn't have much luck, it seems as though the rebased trunk branch doesn't share any ancestry with the original Catalyst sources, so regularly updating is going to be hard (unless I create graft entries for each time I do it I guess?).

Not to mention the fact that it's 8 years of history that takes a while to import and after about 5 tries I didn't even manage to get git svn to dcommit it and got impatient and cross and stopped trying.

So really I want to know is - is this even possible? Is using the above steps along with the graft approach the best|only way to do it? How brittle is this to maintain, if I even manage to get it imported?

Any ideas or advice?

For reference, the CVS/Git import can be cloned here: http://git.catalyst.net.nz/git/moodle-r2.git but will take a long time to come down.

Cheers for any help.
Penny
-- 
/* ---------------------------------------------------
Penny Leach | http://mjollnir.org | http://she.geek.nz
GPG: 8347 00FC B5BF 6CC0 0FC9 AB90 1875 120A A30E C22B
--------------------------------------------------- */
Next: Pascal Obry
Message 1 of 4 in “git-svn starting with an empty svn repository”
  1. Penny LeachFeb 24, 2009
  2. Pascal ObryFeb 24, 2009
  3. Penny LeachFeb 24, 2009
  4. Pascal ObryFeb 24, 2009

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.