安裝git和SVN客戶端
yum install -y git subversion git-svn
開啓sshd密鑰驗證方式
sed -i '/^AuthorizedKeysFile/s/^/#/g' /etc/ssh/sshd_config
sed -i '/AuthorizedKeysFile/a\AuthorizedKeysFile .ssh/id_rsa.pub' /etc/ssh/sshd_config
創建SSH密鑰對,使用gitlab的root用戶
ssh-keygen -t ed25519 -C "[email protected]"
通過瀏覽器訪問gitlab,進入到Settings-SSH Keys,將公鑰(.pub)文件內容添加上去。
創建本地SVN目錄
mkdir /data/svn/xxx
cd /data/svn/xxx
初始化git全局設置
git config --global user.name "Administrator"
git config --global user.email "[email protected]"
將SVN倉庫checkout到本地
svn checkout --username liming --password liming123456 http://192.168.2.250:9999/svn/xxx ./
保留原SVN倉庫的Commit等歷史記錄,以便獲取SVN使用的作者名字列表
svn co --username liming --password liming123456 http://192.168.2.250:9999/svn/xxx code
cd code/
將日誌以xml格式輸出,然後保留作者信息行、去除重複、去除 XML 標記,將輸出重定向到txt文件中
svn log --xml | grep author | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /' > /root/users.txt
修改txt文件,將SVN賬號和gitlab賬號用=號一一對應起來vim /root/users.txt
liming = "李明" <[email protected]>
xiaoming = "張×××" <[email protected]>
ceshi = "測試" <[email protected]>
………………
將本地SVN倉庫轉換爲git倉庫
git svn clone http://192.168.2.250:9999/svn/xxx --authors-file=/root/users.txt --no-metadata my_project
添加遠程倉庫地址,將本地倉庫和遠程倉庫建立聯接
cd my_project/
git remote add origin [email protected]:xxx/xxx.git
將本地數據推送到遠程倉庫上
git push -u origin --all