From: Wink Saville Date: Sun, 03 Feb 2008 21:42:31 GMT Subject: Re: git-svn segmetation fault Message-ID: <47A63547.9080801@saville.com> In-Reply-To: <20080203024225.GA23647@dervierte> Steven Walter wrote: > On Sat, Feb 02, 2008 at 05:21:59PM -0800, Wink Saville wrote: > >> What steps would be needed to recreate a "local git repo" from the >> "git repo on srvr" that I could use against the svn repo? >> >> I tried a little test, I cloned my git repo on srvr locally to amc-xx >> and added the [svn-remote "svn"] section to amc-xx/.git/config >> and then did a git-svn fetch. From what happened it looks like I >> just did a git svn clone and didn't save any time. >> > > After adding the svn-remote section, you'll want to copy > .git/refs/remotes/origin/master to .git/refs/remotes/git-svn. After > doing that, "git svn fetch" should see that you have all the needed > commits and do a quick rebuild of its metadata. > > >> Also, a follow up can I create an svn repo from a git repo. >> > > I've not done it, but it should be possible. You would create the new > svn repository with a single empty commit (as empty as SVN would allow). > Import that revision into your git repository with git-svn. Then you > would either rebase or use grafts to make all of your git commits a > descendent of that single svn commit. In that way, the next time you > run "git svn dcommit" it will see all your local git commits as new > commits to send to subversion. > > No guarantees though, as I've not tried it. > Steve, That worked thanks, I did make some minor adjustments as when I recloned I used the "-s" switch because my svn repo was in standard format so rather than copying master to .git/refs/remotes/git-svn I copied it to .git/refs/remotes/trunk. I also used git svn init to create the remotes section instead of editing .git/config directly. So the following worked for me: lcl ~/ $ git clone git://srv/amc.git amc lcl ~/ $ cd amc lcl ~/amc $ git svn init -s http://async-msgcomp.googlecode.com/svn lcl ~/amc $ rm -rf .git/svn lcl ~/amc $ cp .git/refs/remotes/origin/master .git/refs/remotes/trunk lcl ~/amc $ git svn fetch It would seem creating a "git svn connect" command which did the above might be nice. I took a quick look at git-svn and decided that since I don't know perl and git-svn was almost 5000 LOC it would be dangerous for me to try to make the change:) Thanks for all of your help. Wink