I\'ve got a \'git-svn\' working tree. I\'d like to clone a \"pure\" git repo off this, and then use git push/pull to move changes between the git-svn tree and the git tree,
I have a bridge setup for some of my projects, but it's only one-way from git to svn (providing a public readonly SVN mirror of our git master branch). However, since it works fine it might help you or point you in the right direction in your two-way scenario anyway, as I assume it's git->svn that makes problems, not svn->git:
My one-way scenario: Existing git repository at github, need a readonly svn mirror of the git master branch
Create and initialize the target subversion repository on the Server:
svnadmin create svnrepo
mkdir trunk
svn import trunk svn://yoursvnserver/svnrepo
rmdir -rf trunk
Create a mixed Git-Svn checkout and initialize subversion repository
git svn clone svn://yoursvnserver/svnrepo/trunk
cd trunk
git remote add github git://github.com/yourname/repo.git
git fetch github
git branch tmp $(cat .git/refs/remotes/github/master)
git tag -a -m "Last fetch" last tmp
INIT_COMMIT=$(git log tmp --pretty=format:%H | tail -1)
git checkout $INIT_COMMIT .
git commit -C $INIT_COMMIT
git rebase master tmp
git branch -M tmp master
git svn dcommit --rmdir --find-copies-harder
Update the mirror
git fetch github
git branch tmp $(cat .git/refs/remotes/github/master)
git tag -a -m "Last fetch" newlast tmp
git rebase --onto master last tmp
git branch -M tmp master
git svn dcommit --rmdir --find-copies-harder
mv .git/refs/tags/newlast .git/refs/tags/last
This two articles from googlecode might help as well: