svn遷移到git

SVN遷移到Git

svn目錄結(jié)構(gòu)

先來看看svn目錄結(jié)構(gòu),這個(gè)會(huì)關(guān)系到我們?nèi)绾芜w移。以下說的都是單個(gè)項(xiàng)目的遷移。

標(biāo)準(zhǔn)
/d/proj1
├── branches
│   ├── a
│   │   └── readme.txt
│   └── b
│       ├── 11.txt
│       └── readme.txt
├── tags
│   └── v1.0
│       ├── 11.txt
│       └── readme.txt
└── trunk
    └── readme.txt
非標(biāo)準(zhǔn)

目前我們使用的結(jié)構(gòu)

/d/proj1
├── branches
│   ├── a
│   │   └── readme.txt
│   └── b
│       ├── 11.txt
│       └── readme.txt
├── develop
└── trunk
    └── readme.txt
git svn

svn遷移到git的核心命令。該命令包含在git中,需要先安裝git。

使用示例

git svn clone svn://192.168.1.108:9999/migrator/ --no-metadata --authors-file=userinfo.txt --trunk=trunk --tags=tags --branches=branches migrator

從svn遷移到git的流程就是從svn拉取代碼到本地,然后推送到git。當(dāng)然我們肯定是希望能保留svn中的提交記錄,這個(gè)完全沒有問題。

簽名映射

某些情況下,svn中的提交署名和要遷入的git系統(tǒng)署名不一致,這個(gè)時(shí)候可以指定名字映射,通過參數(shù)—authors-file指定。具體的文件格式可以Google下。

如果簽名要保持一致,那么可以忽略這個(gè)文件

檢出代碼

先看看對(duì)于標(biāo)準(zhǔn)的svn目錄結(jié)構(gòu)的工程如何遷移。

對(duì)于標(biāo)準(zhǔn)svn目錄結(jié)構(gòu)的項(xiàng)目可以使用示例中命令,也可以使用以下簡(jiǎn)化的命令

git svn clone svn://192.168.1.108:9999/migrator/ -s

來說說示例中各參數(shù)的含義

  • 參數(shù)–no-metadata表示阻止git導(dǎo)出SVN包含的一些無用信息
  • 參數(shù)–authors-file表示SVN賬號(hào)映射到git賬號(hào)文件,所有svn作者都要做映射
  • 參數(shù)–trunk表示主開發(fā)項(xiàng)目,一般就是trunk
  • 參數(shù)–branches表示分支項(xiàng)目,--ignore-refs表示不包含后面的分支項(xiàng)目
  • 參數(shù)migrator表示git項(xiàng)目名稱

再來看看非標(biāo)準(zhǔn)svn目錄結(jié)構(gòu)的項(xiàng)目如何處理(以我們現(xiàn)在的目錄為例)

git svn clone svn://192.168.1.108:9999/migrator/ --no-metadata --trunk=trunk --tags=tags --branches=branches migrator

先檢出不包含develop的代碼

接著往下

推送代碼到git

使用git命令將各個(gè)分支推送到git遠(yuǎn)端(切換到各個(gè)分支并push,不會(huì)的自己查詢方法)

到此,標(biāo)準(zhǔn)svn目錄的工程就遷移到了git上。非標(biāo)準(zhǔn)svn目錄的項(xiàng)目繼續(xù)往下

處理非標(biāo)準(zhǔn)svn目錄項(xiàng)目

刪除本地檢出的代碼,重新檢出不在svn標(biāo)準(zhǔn)目錄中的分支(develop)

git svn clone http://svn.***.com/svn/***/develop/ migrator

將develop推送到遠(yuǎn)端

git push git@git.***.com:***/migrator.git develop:develop

至此,單個(gè)項(xiàng)目遷移完畢。而且新的git項(xiàng)目中保留了所有svn的提交記錄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文參考自:Git-與其他系統(tǒng)-遷移到-Git。 也建議閱讀之前,先看看此文章,本文主要是對(duì)里面方法的一個(gè)補(bǔ)充和完...
    飛魚_T閱讀 474評(píng)論 0 2
  • 最近項(xiàng)目要求需要把項(xiàng)目從svn遷移到git,并保留原來的一些提交修改記錄。在此做個(gè)記錄,說一下遷移步驟:網(wǎng)上有很多...
    黑炭長(zhǎng)閱讀 600評(píng)論 0 1
  • 本片內(nèi)容轉(zhuǎn)自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃兒閱讀 5,045評(píng)論 2 87
  • 有故事的人,才能創(chuàng)作出璀璨的作品。 每個(gè)人都有自己的過去,有些是美好的,有些是悲傷的,也有些是不堪回首的。我們總設(shè)...
    笨蛋狐貍愛上貓閱讀 228評(píng)論 0 0
  • [雪萊離開的那天,冰河里滿目霜雪。] 很多年后,我站在魔界交雜著閃電的黑暗天空下,忽然記不得了母親的臉。怎么樣在冰...
    胡取禾閱讀 1,383評(píng)論 1 3

友情鏈接更多精彩內(nèi)容