獲取svn所有user
填寫svn倉庫根目錄地址,最后輸出svn用戶與git用戶映射關(guān)系
svn log https://xxxx/svn/xxxs -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2"@xxx.com>"}' | sort -u > ./svn2git.txt
clone代碼
git svn clone https://xxx/svn/xxx/ --stdlayout --no-metadata --authors-file=./svn2git.txt <dist_xxx_temp>
--stdlayout是使用svn標(biāo)準(zhǔn)目錄結(jié)構(gòu),即trunk、tags、branches這種結(jié)構(gòu)
--no-metadata是去除svn元數(shù)據(jù)信息
<dist_xxx_temp>處填入本地存儲(chǔ)路徑
clone過程中可能會(huì)出現(xiàn)用戶不存在的報(bào)錯(cuò),這種情況下請檢查svn2git.txt中是否包含該用戶,且格式是否正確。添加完畢后,執(zhí)行命令git svn fetch繼續(xù)即可。
調(diào)整分支
根據(jù)實(shí)際情況,將.git/refs/remotes/origin/tags下內(nèi)容挪到.git/refs/tags/,將.git/refs/remotes挪到.git/refs/heads/
執(zhí)行命令
git branch -r #遠(yuǎn)程svn分支
git branch -l #本地git分支
git tag -l #本地git tag
檢查結(jié)果是否正確,不正確的話再調(diào)整分支也可。
push到gitlab
重設(shè)遠(yuǎn)程倉庫
git remote rm origin
git remote add origin http://xxxx/xxx.git
push到倉庫
注意:push遷請先解決空文件夾的問題
git push -u origin --all
git push -u origin --tags
解決空文件夾無法提交到git問題
find . -type d -empty -and -not -regex ./\.git.? -exec touch {}/.gitkeep \;
參考: