我正在尝试弄清楚如何使用bitbucket cloud将svndump文件迁移到GIT。所有教程都假定当前使用apache设置了svn存储库。但这实际上是我迁移的原因,因为在重建mac服务器(10.13)后,我无法成功地重新安装mod_dav_svn。
我能够创建我想要迁移的svn代码库的转储文件。如果保留提交历史记录,而不必进行干净的导入,那就好了。
发布于 2017-12-12 08:03:26
我没有尝试过,所以我不能说你会成功。但是有一些工具看起来是特定于您的问题的。
看看这个:https://bitbucket.org/atlassian/svn-migration-scripts/src
就我个人而言,我选择了mod_dav_svn路线,设置起来有点挑战,但一旦我这样做了,我发现svn2git确实完成了大部分工作。
如果你感兴趣,你也可以看看这个:https://github.com/nirvdrum/svn2git
以下是我的apache配置:
# apache_svn_dav.conf
# Not safe to use in production.
<Location /repos>
DAV svn
SVNPath /opt/svnroot
Deny from All
Allow from localhost
</Location>然后,我可以签出我需要迁移的每个svn存储库,如下所示:
# svn co http://localhost/repos/reponame我能够使用svn2git方法保留我的大多数svn repos的所有历史记录,我的一些svn repos没有标准的目录结构(例如,):
/trunk
/branches
/tags如果你决定走这条路,下面是我使用的命令:
为git创建作者文件(注意:电子邮件地址)
# svn log -q http://servername/repos/reponame | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2"@email.address>"}' | sort -u > authors.txt转换过程
# svn2git http://servername/repos/reponame --authors authors.txt然后,应该为您提供一个.git存储库,然后您可以上传。
我决定使用我自己的自托管GitLab,但命令应该类似:
# git remote add origin git@servername:gitlab-group/project.git
# git add .
# git push --all originhttps://stackoverflow.com/questions/47762789
复制相似问题