簡體   English   中英

將復雜的SVN存儲庫遷移到GIT

[英]Migrating complex SVN repository to GIT

我有一個包含100多個項目的SVN存儲庫,現在我想遷移到GIT。 SVN存儲庫如下所示:

customer_1/prj_1 (trunk, branches, tags)
customer_1/prj_2 (trunk, branches, tags)
customer_1/prj_n (trunk, branches, tags)
...
customer_2/prj_1 (trunk, branches, tags)
customer_2/prj_2 (trunk, branches, tags)
customer_2/prj_n (trunk, branches, tags)
...
customer_n/prj_1 (trunk, branches, tags)
customer_n/prj_2 (trunk, branches, tags)
customer_n/prj_n (trunk, branches, tags)

通過SVN,我可以結帳:

  1. 包含所有客戶和所有項目的整個存儲庫
  2. 單個客戶的所有項目
  3. 特定客戶的項目

我仍然需要使用GIT的這三種訪問方式,尤其是分支和標記單個客戶項目,而不僅僅是整個存儲庫。 因此,基本上在SVN中,不同的客戶項目在每個項目的“ tags”目錄中存儲着不同的穩定版本。 我還需要區分GIT中的客戶項目版本。

我已經將SVN信息庫轉換為單個GIT信息庫(使用svn-git),但是由於(我認為)GIT不允許克隆像Subversion這樣的單個文件夾,因此現在需要使用子模塊或子樹來對其進行結構化。

是否有必要為每個客戶項目創建一個單獨的GIT存儲庫(這會花費很多時間),或者實現我所要求的最常用方法是什么?

如果需要標記單個客戶項目,則每個項目需要一個git存儲庫。 git中的標記(和分支)是其存儲庫的全局標記,無法標記子目錄。

為此,使用git-svn ,運行

git svn clone -s http://svn-repo/customer_1/prj_1 
git svn clone -s http://svn-repo/customer_1/prj_2

等等

這確實可能需要一段時間,但您可能必須忍受這一點。 您當然可以編寫對git-svn的調用的腳本。

關於瀏覽存儲庫:

如果您有多個git repos,則可以將它們作為子文件夾檢出到一個文件夾中。 如果要在服務器上瀏覽它們而不克隆/簽出,則需要安裝git倉庫瀏覽器。 有很多可用的-git wiki中有一個列表: 接口,前端和工具

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM