公司要求將之前使用svn進行管理的專案遷移到gitlab進行專案管理,但是運維連不上我們這邊的svn伺服器,於是我們就得自己將svn專案遷移到gitlab。yeah!終於有我表現的機會了。
要求保留svn上的提交記錄
總體的執行步驟如下:
賬號對應
git-svn拉取原來svn專案
提交專案到gitlab上
接下來我們就要進行轉換了。
svn使用的是使用者賬號展示的提交記錄,但是git使用的是賬號和郵箱進行人員確認的,因此我們需要使用將二者進行對應。
新建個txt文字文件,名字隨便取(但是我這兒使用是svn2git.txt),文字內容如下:zhangsan=zhangsan
,等號左邊是svn賬號,等號右邊是gitlab賬號和郵箱資訊(注意:離職人員也得轉換,否則報錯)。
先別急,svn賬號可以用命令匯出來的。
開啟你的git bash(你得先安裝了git以後才有的)進入你要儲存賬號對應檔案(我這裡是svn2git.txt)的目錄(我是在d盤根目錄使用:cd /d
),
執行如下命令:svn log 你的svn專案的url -q | awk -f '|' '/^r/ ' | sort -u > ./svn2git.txt
,這是使用的linux的awk命令匯出的svn賬號資訊格式化的,當然我這裡用的事gmail郵箱,你可以自定義郵箱,開啟看下是不是和上面的文字內容格式是一致的。
沒錯,git內建了乙個git-svn的工具,你可以用git-svn按照git的方式來管理svn專案,但是強烈不推薦這麼幹。
接下來使用git-svn拉取你的svn專案,命令如下:git svn clone "你的svn專案的url" --no-metadata --authors-file="d:/svn2git.txt" 你自定義的專案名
,這是使用你的賬號對應轉換svn的提交記錄為git提交記錄。
切換到使用git-svn拉取的專案目錄下,執行:git config --local user.name "你的gitlab使用者名稱"
,git config --local user.email "你的gitlab郵箱"
,這兩個是配置專案使用者資訊,
git remote add origin 你的gitlab專案的git位址(注意使用http開頭的,**用git開頭的)
,git push -u origin master
,這兩個命令是新增遠端操作url和推送遠端。
svn遷移git就是通過git-svn將使用者提交記錄進行對應,然後推送到新專案中去。因此建議讓大家把之前要提交的**全部提交上去然後開始進行推送,否則就得拷貝拷貝到新專案**了。
SVN專案遷移GitLab步驟
1.第一步,匯出svn專案的提交日誌,即show log對應的提交日誌,執行如下命令 cat changelog.txt awk f sort u awk awk users.txt users.txt最後的格式如下 xiaomin xiaomin xiaomi xiaomi 左側的 xiaomin...
如何把SVN遷移到Gitlab
把svn上的 倉庫遷移到gitlab上,實際上就是把svn倉庫轉變成git倉庫,並且希望能保留原svn倉庫的commit等歷史記錄,這一點很重要。svn遷移到gitlab需要安裝git svn yum install y git svn保留原svn倉庫的commit等歷史記錄,需要獲取到svn使用的...
SVN及日誌遷移到Gitlab
1 svn準備遷移到gitlab的工作 1.1 將svn提交記錄匯出,如下圖操作 svn log log.txt 匯出後將生成乙個提交記錄的log.txt的檔案,檔案格式如下所示 1.2 然後建立svn2git.txt檔案,作用是svn使用者名稱與git使用者名稱的乙個對映檔案。格式如下 示例 we...