如何把SVN迁移到Gitlab

作者: JensenWong | 来源:发表于2018-05-02 11:32 被阅读10次

把SVN上的代码仓库迁移到Gitlab上,实际上就是把SVN仓库转变成Git仓库,并且希望能保留原SVN仓库的Commit等历史记录,这一点很重要。
SVN迁移到Gitlab需要安装git-svn

# yum install -y git-svn

保留原SVN仓库的Commit等历史记录,需要获取到SVN使用的作者名字列表,为了获得 SVN 使用的作者名字列表,可以在checkout到本地的仓库路径下运行这个:

# svn co --username tom --password 123456 http://my-project.googlecode.com/svn/  code
# cd code
# svn log --xml | grep author | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /' > /root/users.txt

这会将日志输出为 XML 格式,然后保留作者信息行、去除重复、去除 XML 标记。 然后,将输出重定向到你的 users.txt 文件中,这样就可以在每一个记录后面加入对应的 Git 用户数据,修改users.txt文件满足以下的格式:

# vim /root/users.txt
schacon = schacon <schacon@geemail.com>
selse =  selse <selse@geemail.com>

然后开始把SVN仓库转变成Git仓库,执行以下命令:

# git svn clone http://my-project.googlecode.com/svn/   --authors-file=/root/users.txt  --no-metadata  my_project

为了将标签变为合适的 Git 标签,运行

# cd  my_project
# cp -Rf .git/refs/remotes/origin/tags/* .git/refs/tags/
# rm -Rf .git/refs/remotes/origin/tags

这会使原来在 remotes/origin/tags/ 里的远程分支引用变成真正的(轻量)标签。

接下来,将 refs/remotes 下剩余的引用移动为本地分支:

# cp -Rf .git/refs/remotes/* .git/refs/heads/
# rm -Rf .git/refs/remotes

现在所有的旧分支都是真正的 Git 分支,并且所有的旧标签都是真正的 Git 标签。 最后一件要做的事情是,将你的新 Git 服务器添加为远程仓库并推送到上面。 下面是一个将你的服务器添加为远程仓库的例子:

# git remote add origin git@my-git-server:myrepository.git

因为想要上传所有分支与标签,你现在可以运行:

$ git push origin --all

通过以上漂亮、干净地导入操作,你的所有分支与标签都应该在新 Git 服务器上,你可以去gitlab上查看结果了。

相关文章

  • 如何把SVN迁移到Gitlab

    把SVN上的代码仓库迁移到Gitlab上,实际上就是把SVN仓库转变成Git仓库,并且希望能保留原SVN仓库的Co...

  • 如何把SVN迁移到Gitlab

    趁着之前做了有关SVN 迁移到 gitlab的相关经验,也参考了其他人的经验。现在总结一下: 把SVN上的代码仓库...

  • 从SVN迁移到GitLab

    之前公司代码版本管理用的都是 SVN ,最近搭了 GitLab 。所以想把代码从 SVN 迁移到 GitLab 上...

  • svn迁移到gitlab

    yum install -y git-svn 如果想保留提交记录,可以用下面的命令找到: 修改格式: 从svn上...

  • svn迁移到gitlab

    1.先建立SVN账号与gitlab账号直接的对应文档users.txt,并放入本地仓库的文件夹中 schacon ...

  • svn迁移到gitlab

    https://blog.csdn.net/u010039418/article/details/86138101...

  • git仓库迁移

    首次发表在个人博客 需求背景: 需要将原来放置gitlab的仓库迁移到新的gitlab,需要将所有分支和tag都迁...

  • SVN迁移Git

    前缘 SVN与Git,哪个最牛逼?现在要将之前的在SVN管理的项目迁移到Gitlab上,简单记录一下简单粗暴的方法...

  • Git切换分支减少重复编译

    在今年的时候,项目从 SVN 转移到 gitlab进行 git托管。前期没有特别的注意,后来越来越明显。 随着后面...

  • gitlab 新建项目 git 命令 学习

    新项目迁移gitlab,学一波git ^ ^ GitHub && Gitlab && SVN 比较 SVN和Git...

网友评论

    本文标题:如何把SVN迁移到Gitlab

    本文链接:https://www.haomeiwen.com/subject/fjqmlftx.html