将存储库从git转换为subversion

dF.*_*dF. 44 svn git version-control

除此之外,有没有合理的方法将整个git存储库转换为subversion

我只能找到有关 subversion 迁移 git以及在两者之间交换更改集的信息,但不能将整个git存储库的简单转换为svn.

Gre*_*ill 14

转换这个方向的一般问题是,Git存储库可以包含的不仅仅是修订版的线性历史记录,正如Subversion所期望的那样.具有不同历史和频繁合并提交的多个祖先都是可能的,这在Subversion存储库中无法轻易表示.

对于Git存储库中确实存在线性历史记录的简单情况,您可以使用git-svn dcommit将批次推送到其他空的Subversion存储库.

  • 很抱歉在几年后再次提起这个问题,但你能举一个具体的例子说明如何做到这一点吗?假设我在〜/ my-git-repo上有一个git存储库的克隆,我想将提交历史记录复制到一些SVN repo中,比如svn://foo.com/empty-svn-repo/ (2认同)

Dmi*_*nko 7

使用SubGit非常容易.

$ svnadmin create svn.repo
$ subgit configure svn.repo
$ nano svn.repo/conf/subgit.conf to specify a path to your bare repository (you may use "git clone --bare <URL>" if you have none locally)
$ subgit install svn.repo
Run Code Online (Sandbox Code Playgroud)

转换后,您的SVN和链接的Git存储库将保持同步:每个Git推送都将转换为SVN提交,反之亦然.打破翻译运行

$ subgit uninstall svn.repo
Run Code Online (Sandbox Code Playgroud)

虽然翻译SubGit会尽可能地保留提交日期,标签,忽略,合并,EOL,分支等.我不能对git-svn存储库说同样的话.