2010-06-19 30 views
6

我們目前運行一個大的Subversion版本庫,我試圖將它移動到GIT。問題是它在根目錄下使用中繼和標籤。例如:導入Subversion到GIT:子路徑的問題

MyDepartment\MyOS\Project1\trunk\    <-- master branch 
MyDepartment\MyOS\Project1\branch\v1   <-- other branch 
MyDepartment\MyOS\Project1\tags\v1_20100101 <-- release tag 

有不同的部門,操作系統和許多不同的項目。

所以,當我使用克隆--stdlayout SVN倉庫:

git svn clone --stdlayout http://svn-repository/ 

克隆結束空。如果沒有這個選項,我會得到一個克隆,但是之後的分支將作爲主分支上的目錄處理。

  1. 有沒有辦法一次導入這個目錄結構?
  2. 如果我編寫一個腳本來分別導入所有項目,是否有辦法將每個項目的GIT導入組合到一個大的GIT存儲庫中?
+1

'--stdlayout'假定'trunk','tags','branch' **'es' **。 – jfs 2010-06-19 14:17:36

回答

0

調查Git submodules。您可能需要單獨導入每個子項目,但結果可能會更好地反映當前的使用情況。

+0

不幸的是,我讀過的這本書(「使用Git進行版本控制」)阻止了使用子模塊的方式相當有說服力 – Andomar 2010-06-19 16:56:02

3

如果我正確understande的問題,你想:

git svn clone 
    --trunk=MyDepartment\MyOS\Project1\trunk 
    --tags=MyDepartment\MyOS\Project1\tags 
    --branches=MyDepartment\MyOS\Project1\branch 
    http://svn-repository/ 

更新:你可以包含一個以上--branches和--tags:

git svn clone 
    --trunk=MyDepartment\MyOS\Project1\trunk 
    --tags=MyDepartment\MyOS\Project1\tags 
    --tags=MyDepartment\MyOS\Project2\tags 
    --tags=OtherDepatment\MyOS\Project1\tags 
    --branches=MyDepartment\MyOS\Project1\branch 
    --branches=MyDepartment\MyOS\Project2\branch 
    --branches=OtherDepartment\MyOS\Project1\branch 
    http://svn-repository/ 

你不能有顯然,更多的一根樹幹。

Git確實被設計爲支持每個存儲庫一個項目,而不是一個存儲庫中的多個項目。我想你會遇到很多問題,試圖使用它。

+0

有許多不同的項目。我可以爲每個項目編寫導入腳本,但我怎樣才能將它們合併到一個git存儲庫中? – Andomar 2010-06-20 16:07:04

+0

關於多個分支和標籤參數的小更新。這有幫助嗎?或者你想git自動猜測你的倉庫的複雜結構?我相信這是不可能的。 – silk 2010-06-21 09:32:36

+0

是否有可能將多個git存儲庫合併爲一個? – Andomar 2010-06-21 20:29:44