早期某些项目使用的SVN,目前都使用的是GIT,那么如何将SVN的项目迁移到GIT并保留之前提交的记录呢
一:创建用户映射文件
创建一个用户映射文件userinfo.txt,将项目中所有提交的SVN用户和GIT用户对应起来
SVN用户名1 = GIT用户名1<邮箱>
SVN用户名2 = GIT用户名2<邮箱>
如果上面的文件中有用户缺失,后面的 SVN 命令将会停止。不过你可以更新用户映射然后接着再来(类似断点续传)。
二:SVN迁移至GIT
1:拉取代码
从SVN仓库拉取所有数据
git svn clone SVN仓库地址 --stdlayout --no-metadata -A userinfo.txt project(拉取的数据存储目录)
这个命令将会在 project
新建一个 Git repo,并开始从 SVN 中拉取代码。请注意 “--stdlayout
” 参数表示你的项目在 SVN 中是常见的 “trunk/branches/tags
” 目录结构,如果不是,那你需要使用 --tags
, --branches
, --trunk
参数(请通过 git svn help
自行了解)。
SVN仓库地址一些常见协议都是支持的 : svn://
, http://
, https://
。注意这个 URL 应该指向项目的 base repository,例如 http://svn.mycompany.com/myrepo/repository
。 不要指到了 /trunk
, /tag
或 /branches
里。
2:异常处理
如果出现用户名没找到,更新你的 userinfo.txt
文件,然后
cd project
git svn fetch
如果你的项目非常大,你可能需要重复上面的git svn fetch命令好几次,直到所有的 SVN commit 都被抓下来了
三:推送至GIT远程仓库
git remote add origin GIT仓库地址
git push -u origin master
四:参考地址
https://www.lovelucy.info/codebase-from-svn-to-git-migration-...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。