早期某些項目使用的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-...