SVN转Git操作, 并附带当前SVN版本的操作记录
前言
为了适应当下的协作开发的节奏, svn的时代渐行渐远, git的操作无疑让开发进度更加快速。 于是乎 svn->git是必然的的, 而且还要带上提交记录, 进行无缝切换。
基本技能
阅读以下操作, 默认你已经具备一下技能和环境:
- Gitee/Github/Gitlab线上仓库(本文已gitee为例)
- HomeBrew(这个可以使用别的, 主要是安装3-5)
- git
- svn
- git-svn(这个是重点)
可选:
ssh公钥
如果在安装环境和软件过程中, 出现问题, 请自行百度, 这里不做赘述。
步骤概览
- 获取svn所有提交记录的操作者名单, 替换成分配的账号
- git-svn处理, 拉取svn项目,并创建git
- 设置git仓库地址
- 推送上去
前提说明
本文意在指导操作步骤, 至于操作细节, 请根据项目实际操作。
我将进行操作, 将以前的多人项目svn移步到我的个人git上。
详细步骤
服务器获取svn提交者记录
找你们的服务器给你一个, 自行需求到满足格式的形式
本地获取svn提交者记录
如果你通过5.1步骤拿到了, 请忽略
本地新建文件夹, 作为处理仓库
新建
userinfo.txt
cd到当前文件夹
git clone svn项目地址
到当前文件夹下执行命令:
这里注意,前言中说明了, 这里主要是转移到我的个人仓库, 所以,xxx
的位置需要填写我的仓库邮箱地址1
svn log -r 1:HEAD --xml | grep "' '{print $2}' | awk -F '' '{print $1"="$1"<xxx>" }' > userinfo.txt
通过上述代码得到所有提交者记录, 并进行了格式化, 可以根据实际情况做映射改动
git-svn转换
- 新建一个全新的文件夹, 作为转换的仓库
- 将5.1或者5.2获取到的
userinfo.txt
复制到当前文件夹下 cd
到当前文件夹- 执行命令这期间如果出现什么问题, 请自行百度, 大概率是git-svn的安装问题
1
2// xxx为你的svn地址, 请自行填写
git svn clone xxx --no-metadata --authors-file=userinfo.txt
创建网络仓库
这里采用的是gitee
- 新建一个空仓库, 不需要选择其他的东西,
null null null
- 接下来你会看到仓库的提示, 这里就选择普通的https的模式
配置本地信息
我们继续回到步骤5.2中新文件夹
此时该文件夹下, 一个项目文件
, 一个userinfo.txt
依次执行一下命令:
1 | (1) 创建readme文件 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 竹山一叶!
评论