• ubuntu GITLAB完全导入SVN(提交历史,用户)项目


    从SVN导入到GITLAB目前没有直接的方案,通常需要通过GIT转换:SVN –>GIT –>GITLAB。通过这种方式,将SVN的提交历史,用户信息一并导入到gitlab

    注:本文只适用于只有一个SVN主分支的情况,如果你的代码有多个SVN分支,请移步

    SVN->GIT

    这个过程所需要安装的软件:

    sudo apt-get install git-svn
    #git-svn是一个git的工具:用来将svn项目转移到git
    sudo apt-get install subversion
    #ubuntu上非常方便的SVN工具

    找出所有提交者

    cd 你的SVN项目文件夹
    svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /'
    手动设置对应关系,将SVN的用户一一对应于GITLAB用户(请确保gitlab里面已经创建了这些用户)
    创建users.txt
    编辑users.txt 
    SVNuser1 = gitlabuser1<gitlabuser1@email.com>
    SVNuser1 = gitlabuser1<gitlabuser1@email.com>
    ……

    从svn clone 出来

    git svn clone --no-metadata -A users.txt svn://hostname/path dest_dir-tmp
    #svn://hostname/path :替换为你的SVN项目的服务器地址
    #dest_dir-tmp :替换为转换出来的git项目文件夹路径

    GIT->GITLAB

    在你的gitlab网站上端创建一个项目,用来导入git项目
    项目创建后gitlab会显示下图类似的导入帮助信息
    image

    开始导入,执行帮助信息里面的代码就可以了

    cd  git项目文件夹路径
    git remote add origin 你的git项目地址
    #这里需要注意的是,git项目地址由SSH和HTTP两个,如果你通过终端操作,就选择SSH
    image
    git push -u origin master

    恭喜贺喜,导入完毕!!!

    假如你和我一样,对于gitlab的使用和linux的使用很陌生,那么你可能会遇到权限不够,输入密码等各种问题,比如:

    Permission denied (publickey,password).

    fatal: Could not read from remote repository

    出现这个错误,多半是因为的GITLAB没有配置好SSH KEY导致,你的主机不能通过SSH连接上gitlab服务器,你需要这样做:

    登陆gitlab->Profile settings->SSH keys->找到那个generate it链接->点击

    然后界面就会显示出一个适用于自己的生成SSH KEY的命令行,

    ssh-keygen -t rsa –C 你的。。。

    拷贝命令行,在终端输入 <enter>;

    继续在终端中输入界面的第二个命令行

    cat ~/.ssh/id_rsa.pub
    然后复制cat输出的结果
    ADD SSH Key ,在Key中拷贝。title取名,这个名字不能更改!
    OK
  • 相关阅读:
    Access Token 机制详解
    Authorization Code 授权原理和实现方法
    Access Token 与 Refresh Token
    简单介绍 Oauth2.0 原理
    进行web开发时应该考虑的架构性因素
    查看linux服务器CPU数量
    Centos7 修改主机名
    Centos6 编译安装Python3.6
    Linux编译安装软件常见问题及排查
    问题列表
  • 原文地址:https://www.cnblogs.com/pavkoo/p/3610933.html
Copyright © 2020-2023  润新知