環境:
Centos 6.x
總的來說,從SVN遷移至Git共有以下幾步:
1)確定SVN的auth.conf檔案裡的每個user都在Git将會用來配置送出曆史的檔案裡面有對應的名字和郵件位址
2)建立一個本地的Git倉庫
3)将本地Git倉庫連接配接到遠端的SVN倉庫
4)配置Git的送出曆史使用者名
5)開始從SVN擷取代碼
6)将本地Git倉庫連接配接到遠端Git倉庫
7)推送本地倉庫代碼到遠端倉庫
詳細步驟:
生成第4步會用到的使用者名檔案
A. 通過以下指令擷取SVN倉庫
#svn checkout --username xxxx SVN-REPO-URL
B. 在擷取的倉庫裡,運作以下指令生成authors.txt檔案
#svn log ^/ --xml | grep -P "^<author" | sort -u | perl -pe 's/<author>(.*?)<\/author>/$1 = /' > ../authors.txt
C. 以下面的格式編輯生成的authors.txt檔案
SVNUser = [GitUser_FullName] <GitUser_Email> //GitUser_FullName是可選的
建立本地Git倉庫
#mkdir folderName
#cd folderName
#git init
将本地Git倉庫連接配接到遠端的SVN倉庫
#git svn init http://svn.com/proj --no-metadata
配置Git的送出曆史使用者名
#git config svn.authorsfile ~/authors.txt
開始從SVN擷取代碼
#git svn fetch
将本地Git倉庫連接配接到遠端Git倉庫
#git remote add origin SERVER_REPO_LOCATION
推送本地倉庫代碼到遠端倉庫
#git pull origin master
#git push origin master
注:
常見錯誤1:403 Forbidden Error
解決方法,運作以下指令:
#git remote set-url origin https://[email protected]/user/repo.git