Git-2-SVN migration?

前端 未结 2 1679
無奈伤痛
無奈伤痛 2020-12-25 09:56

Yes, I know. Why would you want to migrate from Git to SVN?

Well I happen to be in a situation that I need to migrate a huge Git repo to Subversion! Here\'s one wor

相关标签:
2条回答
  • 2020-12-25 10:00

    --- Edited after details added ---

    Did you do an empty initial commit to svn/trunk? If not, then it would explain why you get an error that it cannot be found in the history.

    The comments (in combination)

    The --prefix gives you remote tracking branches like "svn/trunk" which
    is nice because you don't get ambiguous names if you call your local
    branch just "trunk" then. 
    

    and

    Then get the hash of the empty trunk commit:
    

    Tends to imply that they made a svn/trunk commit to prevent svn conflict with a pre-existing trunk directory. If that is so, perhaps your only misstep is not committing a svn/trunk to be found later?

    --- Original post follows ---

    Have you tried this? dcommit won't work properly until you linearize your trunk (or branch) history.

    Please post the details of your attempted migration. While what you posted is a useful error message, it would be ten times more useful with the list of steps you used to arrive at that error.

    0 讨论(0)
  • 2020-12-25 10:27

    I would recommend you to migrate that with SubGit in several easy steps.

    $ svnadmin create svn.repo
    $ subgit configure svn.repo
    $ nano svn.repo/conf/subgit.conf #edit path to your (bare!) Git repository (you may use "git clone --bare <URL> bare.git.repo" if you don't have it locally)
    $ subgit install
    

    That's all. While translation SubGit will try to preserve all commits (even temporary), branches, merges, ignores, dates, EOLs settings, tags and so on, as it it possible.

    After translation the repositories will be in sync (each push to Git is translated to SVN revision and vice versa). To break synchronization (if you don't need it) run

    $ subgit uninstall svn.repo
    
    0 讨论(0)
提交回复
热议问题