1. 程式人生 > >centos上 svn遷移到gitlab

centos上 svn遷移到gitlab

svn 遷移到gitlab

1. 安裝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