阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

svn 迁移到git

87次阅读
没有评论

共计 2058 个字符,预计需要花费 6 分钟才能阅读完成。

本文由 LinuxProbe.Com 团队成员 魏丽猿 整理发布,原文来自:爱开源。

1. 物理环境
Git–server    Centos5.8    192.168.1.245
Svn–server    Centos5.8    192.168.1.108
2. 建立 SVN 用户到 git 用户的映射文件

建立 SVN 用户到 git 用户的映射文件,文件格式如下:

cat /tmp/userinfo.txt
david=sfzhang
yanni=yanni
3. 克隆一个 git 版本库

通过 git svn clone 克隆一个 git 版本库,SVN 里面包含 trunk,branches 和 tags。

git svn clone svn://192.168.1.108:9999/yanzi/ --no-metadata --authors-file=userinfo.txt --trunk=trunkmobile --tags=tags --branches=branches --ignore-refs=refs/remotes/yanzi-.*  yanzi

参数–no-metadata 表示:阻止 git 导出 SVN 包含的一些无用信息
参数–authors-file 表示:SVN 账号映射到 git 账号文件,所有 svn 作者都要做映射
参数–trunkmobile 表示:主开发项目
参数–branches 表示:分支项目,–ignore-refs 表示不包含后面的分支项目
参数 yanzi 表示:git 项目名称

4. 查看项目提交的历史记录

通过 git log 查看项目提交的历史记录,包括作者,日照,和提交注释信息等。

cd yanzi
git log
commit 3c4907782804096ea3fa3fb5419dcce610e56f1f
Author: david 
Date:   Fri May 10 10:27:50 2013 +0000
5. 列出当前所有的分支
cd yanzi
git branch -r
  tags/mobile_1.0.0
  tags/mobile_1.0.1
  trunk
  yanziios1.0.1-build-2223-branch-002
6. 手动将 branches 分支转换为 tags
git tag mobile_1.0.0 tags/mobile_1.0.0
git tag mobile_1.0.1 tags/mobile_1.0.1
7. 将多余的 branches 删除掉
git branch -r -d tags/mobile_1.0.0
Deleted remote branch tags/mobile_1.0.0 (was d50002b).
git branch -r -d tags/mobile_1.0.1
Deleted remote branch tags/mobile_1.0.1 (was e7b78a2).
8. 再次列出当前的所有分支
git branch -r
  trunk
  yanziios1.0.1-build-2223-branch-002
9. 建立 git 仓库并初始化版本库
mkdir -p /data/gitdata/yanziios.git
cd /data/gitdata/yanziios.git/
git init --bare
Initialized empty Git repository in /data/gitdata/yanziios.git/
10. 将 yanziios.git 的属主修改为 git 用户
chown git yanziios.git -R
ls -l yanziios.git/
total 64
drwxr-xr-x 2 git root 4096 May 22 12:25 branches
-rw-r--r-- 1 git root   66 May 22 12:25 config
-rw-r--r-- 1 git root   73 May 22 12:25 description
-rw-r--r-- 1 git root   23 May 22 12:25 HEAD
drwxr-xr-x 2 git root 4096 May 22 12:25 hooks
drwxr-xr-x 2 git root 4096 May 22 12:25 info
drwxr-xr-x 4 git root 4096 May 22 12:25 objects
drwxr-xr-x 4 git root 4096 May 22 12:25 refs
11. 添加远程 git 服务器地址
git remote add origin git@192.168.1.245:/data/gitdata/yanziios.git
12. 推送全部的分支和标签信息到 git 服务器上
git push origin master --tags

之后就是 SVN 迁移到 Git 测试, 在客户端用 SourceTree 工具克隆一个 Git 服务端仓库 yanziios.git, 在 SourceTree 图形界面里面可以看到 git 用户提交的 Graph 信息,描述信息(Description), 日期,作者和版本号等信息。

相关知识链接:https://www.linuxprobe.com/chapter-21/

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计2058字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中