git clone of git-svn tree?

前端 未结 6 1344
一生所求
一生所求 2020-12-13 03:05

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,

6条回答
  •  半阙折子戏
    2020-12-13 03:36

    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:

    • Importing from Git
    • Exporting to Git
    • Using Git with Google Code Hosting
    • Develop with Git on a Google Code Project

提交回复
热议问题