Entries Tagged as ''

Bare git-svn repo I can commit from?

Dear lazyweb.

I’ve asked google, and I’m not sure I can do what I want to do, but maybe one of you knows how.

At work, we use subversion (ick) as our VCS.  I, of course, use git-svn.  However, this means that I have to have a multiple git-svn repos if I want to have multiple outstanding change-sets (uncommitted to local git) at a time.  I know, I’m supposed to commit early and often and rebase (and I do) but sometimes it’s horribly inconvenient to have to stop what I’m doing, commit, check out a new branch, make a small change, commit, and switch back.  In addition, I sometimes need stable checkouts for testing (some bugs can take days to reproduce, and rebuilding breaks debugging).   However, keeping track of all these git-svn repos is a pain, and getting new ones is very time-consuming, involving either a new ‘git svn clone’ or a copy of an existing repo.

What I’d like is a git to svn bridge.  That is, a bare git-svn repo with appropriate hooks that I can clone (using git), work from, pull from (the pull hook would git svn fetch), and push to (the push hook would git svn dcommit).  As nearly as I can tell, I can’t do this, because git-svn seems to need a checkout for some things (git svn rebase, for example; git svn fetch didn’t seem to pull the changes into the repo’s history), but cloning and pushing in git seems to need a bare repo.

So, oh lazy web, is it possible to do what I want?