1. 程式人生 > >如何把SVN遷移到Gitlab

如何把SVN遷移到Gitlab


作者:JensenWong
連結:https://www.jianshu.com/p/a68ff08f5856
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。

把SVN上的程式碼倉庫遷移到Gitlab上,實際上就是把SVN倉庫轉變成Git倉庫,並且希望能保留原SVN倉庫的Commit等歷史記錄,這一點很重要。
SVN遷移到Gitlab需要安裝git-svn

# yum install -y git-svn

保留原SVN倉庫的Commit等歷史記錄,需要獲取到SVN使用的作者名字列表,為了獲得 SVN 使用的作者名字列表,可以在checkout到本地的倉庫路徑下執行這個:

# svn co --username tom --password 123456 http://my-project.googlecode.com/svn/  code
# cd code
# svn log --xml | grep author | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /' > /root/users.txt

這會將日誌輸出為 XML 格式,然後保留作者資訊行、去除重複、去除 XML 標記。 然後,將輸出重定向到你的 users.txt 檔案中,這樣就可以在每一個記錄後面加入對應的 Git 使用者資料,修改users.txt檔案滿足以下的格式:

# vim /root/users.txt
schacon = schacon <[email protected]>
selse =  selse <[email protected]>

然後開始把SVN倉庫轉變成Git倉庫,執行以下命令:

# git svn clone http://my-project.googlecode.com/svn/   --authors-file=/root/users.txt  --no-metadata  my_project

為了將標籤變為合適的 Git 標籤,執行

# cd  my_project
# cp -Rf .git/refs/remotes/origin/tags/* .git/refs/tags/
# rm -Rf .git/refs/remotes/origin/tags

這會使原來在 remotes/origin/tags/ 裡的遠端分支引用變成真正的(輕量)標籤。

接下來,將 refs/remotes 下剩餘的引用移動為本地分支:

# cp -Rf .git/refs/remotes/* .git/refs/heads/
# rm -Rf .git/refs/remotes

現在所有的舊分支都是真正的 Git 分支,並且所有的舊標籤都是真正的 Git 標籤。 最後一件要做的事情是,將你的新 Git 伺服器新增為遠端倉庫並推送到上面。 下面是一個將你的伺服器新增為遠端倉庫的例子:

# git remote add origin [email protected]:myrepository.git

因為想要上傳所有分支與標籤,你現在可以執行:

$ git push origin --all

通過以上漂亮、乾淨地匯入操作,你的所有分支與標籤都應該在新 Git 伺服器上,你可以去gitlab上檢視結果了。

相關推薦

如何SVN遷移Gitlab

作者:JensenWong 連結:https://www.jianshu.com/p/a68ff08f5856 來源:簡書 簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。 把SVN上的程式碼倉庫遷移到Gitlab上,實際上就是把SVN倉庫轉變成G

centos上 svn遷移gitlab

svn 遷移到gitlab1. 安裝svn2git工具(自己找一臺服務器) #安裝svn2git。在所有系統上,如果您已經安裝了Ruby和Git,您可以將它們安裝為Ruby gem。 gem install svn2git 2. svn庫中導出作者文件authors.txt #準備一個作者文件,以便svn2

SVN專案遷移Gitlab例項版

Git遷移步驟: 步驟一:準備工作 我們的Gitlab地址:http://*********,沒有賬號的自行註冊找到C:\Users\使用者名稱\.ssh資料夾,複製其中id_rsa.pub,貼上到

SVN遷移

jin 服務器 參考 targe html article svn遷移 nbsp aid 相信很多公司都是使用的SVN做版本控制,當我們要更換服務器時,就不得不考慮svn遷移問題。 具體遷移步驟可以參考: https://jingyan.baidu.com/art

SVN遷移 程式碼並在pycharm中進行程式碼提交的詳細配置

SVN 程式碼的遷移與提交 文章目錄 SVN 程式碼的遷移與提交 1.簽出原始碼到本機 2. 文件的修改 3.pycham中svn配置 1.簽出原始碼

系統遷移到固態

1.下載同傲分割槽助手 2.開啟助手,點選把系統遷移到固態 3.按照提示分割槽,我把固態全部都分割槽為系統盤。 4.回到主頁面,點選提交。重新啟動。 5.在啟動過程中可能因為你的固態硬碟和機械硬碟的格式不同,導致不能成功遷移,這裡需要把固態的格式轉換為跟機械的格式相同。 6.轉換相同時,系統

如何svn專案變成普通專案

      當專案不需要SVN標誌的時候,我們一般怎麼辦哪??可能很多人設定Windows顯示隱藏檔案,然後將專案中的所有.svn檔案刪除,這種方法是既費勁兒又蛋疼。      下面我教你個方法,能快速解決這個問題:  第一步:建立一個名字叫做remove-svn-fol

IDEA配置SVN,Git,GitLab

整合GitLab外掛:http://baijiahao.baidu.com/s?id=1602987918454762059&wfr=spider&for=pc 使用IDEA整合Git上傳專案到GitHub,GitLab:https://www.cnblogs.com/qianqiu-102

轉載:通過 備份檔案 恢復/遷移 gitlab

一、環境準備 首先在新伺服器(192.168.2.1)上搭建gitlab,   注意:通過備份檔案恢復gitlab必須保證新的gitlab版本必須要和老的gitlab版本一致,否則會提示版本不匹配。 所以無非是兩種思路,一種將老的gitlab先升級到你要的gitlab

企業IT管理員IE11升級指南【13】—— 如何IEMP遷移到GPP

企業IT管理員IE11升級指南 系列: 如何把IEMP遷移到GPP 背景 Internet Explorer Maintenance (IEM) 從Internet Explorer 10以後就已取消。安裝Internet Expl

CentOS下svn遷移備份的三種方法

svn備份方式對比分析 一般採用三種方式: 1、svnadmin dump 2、svnadmin hotcopy 3)svnsync 注意,svn備份不宜採用普通的檔案拷貝方式(除非你備份的時候將庫暫停),如copy、rsync命令。 曾經用rsync命令來做增量和全量

專案遷移到Kubernetes上的5個小技巧

我們將在本文中提供5個訣竅幫你將專案遷移到Kubernetes上,這些訣竅來源於過去12個月中OpenFaas社群的經驗。下文的內容與Kubernetes 1.8相容,並且已經應用於OpenFaaS - Serverless Functions Made Simple的實踐中

本地svn遷移到git

最近想要將自己本地的svn遷移到git。因為遷移的是本地庫,期間遇到一些問題,如果有遇到相同問題的同學可以參考一下。 假設目標svn庫為file:///e:/svn/reps/dir/ 檢視git手冊,按照上面的說明進行操作: 首先新建一個user.txt

SVN 遷移到 Git

準備工作 確認所有使用者的本地修改都簽入到伺服器, 將 SVN 原始碼的分支儘可能的合併到主幹, 已經發布的做好歸檔資訊, 並備份 SVN 庫。 雖然遷移到 Git 的風險不大, 但是備份一下總是好的。 安裝 Git , 這看起來是廢話, 不裝 Git 怎麼遷移? 將使用者對映到 Git 建立一個使用者

SVN遷移update地址更換

在工作環境調整時,有的時候SVN伺服器的地址需要修改,此時我們如何修改本地庫的地址,而不用重新下載呢?SVN中有一個簡單的解決辦法: 1,環境為windows7 在工作複本的根目錄上右鍵->TortoiseSVN->重新定位(Relocate),然後修改URL,

svn遷移出的專案中文亂碼解決

實際中導致中文亂碼的情況有很多種,我的這個只是屬於其中一種,寫下來供別人參考,也是為了下次再出現這種錯誤之後能夠快速的解決,不至於忘了然後再次瞪眼瞎! 描述:我的這個專案是從SVN檢出之後就一直中文亂碼(目標專案中文亂碼,其他都是正常的) 嘗試1:出現這種情況之後,第一想到

Linux svn遷移備份的三種方法

svn備份方式對比分析 一般採用三種方式: 1、svnadmin dump 2、svnadmin hotcopy 3)svnsync 注意,svn備份不宜採用普通的檔案拷貝方式(除非你備份的時候將庫暫停),如copy、rsync命令。 曾經用rsync命令來做增量和全量備份

svn安裝及Windows環境SVN遷移到Linux

yum order str 連接 execute cut Opens svn遷移 devops SVN項目備份 使用svnadmin工具導出到本地。 cd H:\Repositories svnadmin dump H:\Repositories\test > F:

SVN——GitLab——GitLab資料遷移

專案案例一:生產環境SVN資料遷移到測試環境GitLab 主機名 IP地址 備份 特殊要求 SVN 192.168.146.133 SVN伺服器 無 Git01 192.168.146.131 Git客戶端 無 Git02 192.168.146.132 GitLab伺服器01 記憶體2

svn遷移專案到公司gitlab

我用的方式是先克隆到本地repository在push到gitlab 一:專案遷移以test專案為例: 1.在本地開啟git bash,建立本地repository    mkdir test