SVN单个项目迁移到Gitlab,保留历史提交记录

1.版本说明

svn --version:版本1.14.1

git --version:版本2.43.0.windows.1

git svn --version:执行不报错,显示版本git-svn version 2.43.0.windows.1 (svn 1.14.2)

2.提取用户的列表

提取所有SVN用户的列表到当前路径下的userInfo.txt文件

git 复制代码
# 可以修改指定的邮箱后缀email.com
svn log http://svn的仓库地址/分支名 -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2"="$2" <"$2"@email.com>"}' | sort -u > ./userInfo.txt

3.使用 git-svn 克隆 SVN 存储库

在userInfo.txt文件所在的路径下执行命令

git 复制代码
git svn clone http://svn的仓库地址/分支名 --no-metadata --no-minimize-url --authors-file=userInfo.txt demo

--no-metadata:不拉取SVN metadata附加信息

--no-minimize-url:克隆时只会拉取你要求的分支项目,不会自动拉取上级内容。不添加此参数会导致不拉取【http://svn的仓库地址/分支名】而拉取【http://svn的仓库地址】

--authors-file=userInfo.txt:根据提供的userinfo.txt文件,将提交的作者名称映射到对应的用户邮箱地址。

demo:本地存放svn指定路径的内容的文件夹

4.push到GitLab仓库

现状

git 复制代码
# 本地master分支和远程git-svn分支
$ git branch -a                                                                       
* master
  remotes/git-svn

# 没有任何输出,没有关联的远程git仓库
git remote -v

添加远程仓库并push

git 复制代码
git remote add origin https://你的gitlab_project_path
git remote -v
git push -u origin master

5.参考

从 Subversion (SVN) 迁移到 Git - Azure Repos | Microsoft Learn

SVN单个项目迁移到Gitlab_svn代码迁移到gitlab-CSDN博客

相关推荐
我一定会有钱1 天前
打造完美工作流:Git 配置”一次推送,三端同步”(Gitee/GitCode/GitHub)
开发语言·windows·vscode·搜索引擎·gitlab·github·visual studio code
LXY_BUAA1 天前
Git_在飞牛中部署 GitLab_20260817
git·gitlab
Jeanyia4 天前
GitLab 配套 Git 常用命令
git·gitlab
极小狐4 天前
极狐GitLab 补丁版本:19.2.1、19.1.3、19.0.5
网络·安全·gitlab·极狐gitlab·安全更新·补丁版本
rustfs5 天前
GitLab 如何与 RustFS 集成?
分布式·rust·gitlab
郝亚军7 天前
gitlab常用命令
gitlab
xixingzhe210 天前
Java 使用 GitLab4J 实现 WebHook
gitlab
童槿顏丶12 天前
GitLab部署到Linux
linux·运维·gitlab
InfinitePlus12 天前
Gitlab docker版本安装
docker·容器·gitlab
进击切图仔12 天前
GitLab 新用户创建与项目授权操作指南
gitlab