centos上 svn遷移到gitlab
阿新 • • 發佈:2018-03-15
svn 遷移到gitlab1. 安裝svn2git工具(自己找一臺服務器)
#安裝svn2git。在所有系統上,如果您已經安裝了Ruby和Git,您可以將它們安裝為Ruby gem。
gem install svn2git
2. svn庫中導出作者文件authors.txt
#準備一個作者文件,以便svn2git將SVN作者映射到Git作者。如果您選擇不創建作者文件,則提交不會歸因於正確的GitLab用戶。有些用戶可能不認為這是一個大問題,而另一些用戶則希望確保他們完成這一步驟。如果您選擇映射作者,則需要將存在於SVN存儲庫中的更改的每個作者映射。如果你不這樣做,轉換將失敗,你將不得不相應地更新作者文件。以下命令將搜索存儲庫並輸出作者列表。 #如果有svn的賬號和密碼自己添加一下 --user --password #這一步會將你項目中的作者記錄下來輸出 svn log https://svn.testcompany.com/svn/company/dev --quiet | grep -E "r[0-9]+ \| .+ \|" | cut -d‘|‘ -f2 | sed ‘s/ //g‘ | sort | uniq >/tmp/authors.txt #使用最後一條命令的輸出來構建作者文件。創建一個名為的文件,authors.txt並為每行添加一個映射。 vim /tmp/authors.txt janedoe = Jane Doe <[email protected]> johndoe = John Doe <[email protected]> alexdoe = Alex Doe <[email protected]>
3. 如果你的SVN倉庫是標準格式(中繼,分支,標簽,而不是嵌套),轉換很簡單。有關非標準存儲庫,請參閱
#svn2git文檔 https://github.com/nirvdrum/svn2git 。以下命令將檢出存儲庫並在當前工作目錄中執行轉換。確保在運行該svn2git命令之前為每個存儲庫創建一個新目錄。轉換過程需要一些時間。 #創建一個目錄測試拉取轉換效果 mkdir /data/Repository/test1 -p cd /data/Repository/test1 #老樣子,如果需要用戶和密碼 加入參數 --user --password svn2git https://svn.testcompany.com/svn/company/dev --authors /tmp/authors.txt
4. 創建一個新的GitLab項目,您最終將推送您的轉換後的代碼。從項目頁面復制SSH或HTTP(S)存儲庫URL。將GitLab存儲庫添加為Git遠程並推送所有更改。這將推動所有提交,分支和標簽。
#gitlab上自己創建一下測試組,和項目目錄,然後執行下面上傳指令
git remote add origin [email protected]:test/development.git
git push --all origin
git push --tags origin
5.大佬們如果有問題,記得提出來,要分享
centos上 svn遷移到gitlab