zoukankan      html  css  js  c++  java
  • SVN迁移Gitlab步骤

    概述

    公司要求将之前使用SVN进行管理的项目迁移到Gitlab进行项目管理,但是运维连不上我们这边的SVN服务器,于是我们就得自己将SVN项目迁移到Gitlab。Yeah!终于有我表现的机会了。
    要求保留SVN上的提交记录
    总体的执行步骤如下:

    1. 账号对应
    2. git-svn拉取原来SVN项目
    3. 提交项目到Gitlab上

    执行步骤

    接下来我们就要进行转换了。

    账号对应

    SVN使用的是用户账号展示的提交记录,但是git使用的是账号和邮箱进行人员确认的,因此我们需要使用将二者进行对应。
    新建个txt文本文档,名字随便取(但是我这儿使用是svn2git.txt),文本内容如下:zhangsan=zhangsan <zhangsan@gmail.com>,等号左边是SVN账号,等号右边是Gitlab账号和邮箱信息(注意:离职人员也得转换,否则报错)。
    先别急,SVN账号可以用命令导出来的。
    打开你的Git BASH(你得先安装了Git以后才有的)进入你要保存账号对应文件(我这里是svn2git.txt)的目录(我是在d盘根目录使用:cd /d),
    执行如下命令: svn log 你的SVN项目的url -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2"="$2" <"$2"@gmail.com>"}' | sort -u > ./svn2git.txt,这是使用的Linux的awk命令导出的svn账号信息格式化的,当然我这里用的事gmail邮箱,你可以自定义邮箱,打开看下是不是和上面的文本内容格式是一致的。

    git-svn拉取SVN项目

    没错,git内置了一个git-svn的工具,你可以用git-svn按照git的方式来管理svn项目,但是强烈不推荐这么干。
    接下来使用git-svn拉取你的SVN项目,命令如下:git svn clone "你的SVN项目的url" --no-metadata --authors-file="d:/svn2git.txt" 你自定义的项目名,这是使用你的账号对应转换SVN的提交记录为git提交记录。

    提交项目到gitlab

    切换到使用Git-svn拉取的项目目录下,执行:git config --local user.name "你的gitlab用户名"git config --local user.email "你的gitlab邮箱",这两个是配置项目用户信息,
    git remote add origin 你的gitlab项目的git地址(注意使用http开头的,不雅用git开头的), git push -u origin master,这两个命令是添加远程操作url和推送远程。

    总结

    svn迁移git就是通过git-svn将用户提交记录进行对应,然后推送到新项目中去。因此建议让大家把之前要提交的代码全部提交上去然后开始进行推送,否则就得拷贝拷贝到新项目代码了。

  • 相关阅读:
    JDK框架简析--java.lang包中的基础类库、基础数据类型
    Mahout 模糊kmeans
    使用heartbeat+monit实现主备双热备份系统
    Git版本号控制:Git分支处理
    JAVA线程
    Nginx的特性与核心类别及配置文件和模块详解
    nginx设置反向代理后端jenklins,页面上的js css文件无法加载
    运维的危险命令,用了必死(1)
    xtrabackup备份MySQL
    利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境
  • 原文地址:https://www.cnblogs.com/Lenbrother/p/11496869.html
Copyright © 2011-2022 走看看