首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SVN -> GIT,无HTTP访问

SVN -> GIT,无HTTP访问
EN

Stack Overflow用户
提问于 2017-12-12 06:56:56
回答 1查看 68关注 0票数 0

我正在尝试弄清楚如何使用bitbucket cloud将svndump文件迁移到GIT。所有教程都假定当前使用apache设置了svn存储库。但这实际上是我迁移的原因,因为在重建mac服务器(10.13)后,我无法成功地重新安装mod_dav_svn。

我能够创建我想要迁移的svn代码库的转储文件。如果保留提交历史记录,而不必进行干净的导入,那就好了。

EN

回答 1

Stack Overflow用户

发布于 2017-12-12 08:03:26

我没有尝试过,所以我不能说你会成功。但是有一些工具看起来是特定于您的问题的。

看看这个:https://bitbucket.org/atlassian/svn-migration-scripts/src

就我个人而言,我选择了mod_dav_svn路线,设置起来有点挑战,但一旦我这样做了,我发现svn2git确实完成了大部分工作。

如果你感兴趣,你也可以看看这个:https://github.com/nirvdrum/svn2git

以下是我的apache配置:

代码语言:javascript
复制
# 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存储库,如下所示:

代码语言:javascript
复制
# svn co http://localhost/repos/reponame

我能够使用svn2git方法保留我的大多数svn repos的所有历史记录,我的一些svn repos没有标准的目录结构(例如,):

代码语言:javascript
复制
/trunk
/branches
/tags

如果你决定走这条路,下面是我使用的命令:

为git创建作者文件(注意:电子邮件地址)

代码语言:javascript
复制
# svn log -q http://servername/repos/reponame | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2"@email.address>"}' | sort -u > authors.txt

转换过程

代码语言:javascript
复制
# svn2git http://servername/repos/reponame --authors authors.txt

然后,应该为您提供一个.git存储库,然后您可以上传。

我决定使用我自己的自托管GitLab,但命令应该类似:

代码语言:javascript
复制
# git remote add origin git@servername:gitlab-group/project.git
# git add .
# git push --all origin
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47762789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档