安裝git和SVN客戶端git
yum install -y git subversion git-svn
開啓sshd密鑰驗證方式vim
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 "admin@example.com"
經過瀏覽器訪問gitlab,進入到Settings-SSH Keys,將公鑰(.pub)文件內容添加上去。
建立本地SVN目錄ssh
mkdir /data/svn/xxx cd /data/svn/xxx
初始化git全局設置ide
git config --global user.name "Administrator" git config --global user.email "admin@example.com"
將SVN倉庫checkout到本地svn
svn checkout --username liming --password liming123456 http://192.168.2.250:9999/svn/xxx ./
保留原SVN倉庫的Commit等歷史記錄,以便獲取SVN使用的做者名字列表gitlab
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 = "李明" <liming@xxxxxxxx.com> xiaoming = "張×××" <xiaoming@xxxxxxxxx.com> ceshi = "測試" <ceshi@xxxxxxxxx.com> ………………
將本地SVN倉庫轉換爲git倉庫code
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 git@192.168.2.210:xxx/xxx.git
將本地數據推送到遠程倉庫上
git push -u origin --all