①將SVN遷移到GitLab-單分支遷移


將SVN上的代碼遷移到GitLab上,實際原理是將所遷移的服務器上,拷貝SVN上的相關代碼,在服務器上生成Git相關倉庫,然后推送到GitLab倉庫,並保存SVN相關的提交記錄,分支,標簽等信息。

一、安裝git-svn

首先安裝遷移所需要的工具git-svn,通過以下命令行進行安裝。

apt-get install -y git-svn或者yum install -y git-svn

 

 

我們在原來的svn教程基礎上,用shaw001用戶新增了testMeg.txtcommit-shaw001.txt文件,shaw002用戶新增了commit-shaw002.txt文件,並修改了兩個文件,svn提交記錄如圖所示:

二、生成用戶映射文件

保留原SVN倉庫的Commit等歷史記錄,需要獲取到SVN使用的作者名字列表,為了獲得 SVN 使用的作者名字列表,可以通過以下命令行,獲取SVN相關用戶信息:

svn co --username shaw001 --password shaw001 svn://192.168.109.128/ code

以上紅色部分為可變變量,說明:

--username:后頭跟svn用戶名。

--password:后頭跟svn用戶相關密碼

svn://192.168.109.128/:為SVN倉庫地址

code:文件夾,存放SVN倉庫相關文件夾

 

執行命令后會將svn上的相關文件代碼存放到code文件夾。進入code文件夾,可以看到,我們在svn存放的一些文件信息。

接着,通過以下命令,生成svn用戶列表:

svn log --xml | grep author | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /' > /home/svn/users.txt

紅色部門為用戶列表文件存放的路徑。期間要輸入svn的用戶名和密碼。

執行命令后我們在/home/svn路徑下會多出一個users.txt的文件。

 

打開后,我們會看到里頭有svn的用戶。

 

三、修改用戶列表,配置與GitLab用戶映射關系

我們登陸到GitLab上,新建兩個用戶shaw001和shaw002,並且email設定為shaw001@example.com和shaw002@example.com

    

修改users.txt文件,配置對應關系:

 

 格式如下:

svn用戶 = GitLab用戶<GitLab用戶郵箱>

四、將svn倉庫變成GitLab倉庫

在服務器上拷貝svn代碼並轉成GitLab倉庫。通過以下命令:

git svn clone svn://192.168.109.128/ --authors-file=/home/svn/users.txt --no-metadata myproject

期間也是要輸入svn密碼的:

 

 執行完文件信息如下:

 

五、創建GitLab項目接收代碼

 gitlab創建testsvn項目用來接收svn代碼

 

執行分支添加: 

git remote add origin git@192.168.109.128:shaw001/testsvn.git

 然后推送到遠端:

git push origin –all

 

有時候執行過程中會提示:無法推送一些引用到”xxx”

執行以下命令:

git push -u origin +master

 

這時候要添加sshkey。這步驟省去,添加完后,重新執行下。這兒添加ssh key略去,添加SSH key之后重新執行:

 

 登錄gitlab查看下,相關的提交記錄

 

文件已經同步了

 

同時相關的提交記錄也同步了。完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM