2010-11-19 74 views
2

我想把我們現有的svn倉庫移動到git。我們不需要在兩者之間進行任何同步(所以沒有git svn fetch es或dcommit s) - 我們只是移動而已,就是這樣。爲什麼git-svn clone將'master'設置爲隨機分支?

我發出這個命令來創建Git倉庫:

git svn clone -s https://server/repos/my_repo 

這種運行良好。但是,當我將cd放入新的my_repo目錄中時,其中的文件就是其中一個分支(不是中繼線)的一部分。

做一個git branches -a產量:

* master 
    modelExperimentalTrunk 
    [email protected] 
    dRefactoring 
    reorganise 
    stableV396 
    tags/v1.0 
    trunk 

我在主分支,但在我的沙盒文件實際上是從dRefactoring分支(我們的更隱蔽的一個分支)。

問題:

  • 爲什麼在master分支沒有連接到trunk
  • 有沒有辦法將它重新連接到trunk?或者可以在git svn clone階段完成?
  • 另外,考慮到這將在服務器上,有沒有什麼辦法可以創建一個--bare存儲庫?

回答

7

重新連接主分支主幹很容易,只需要運行:

git checkout master 
git reset --hard trunk 

這個切換到主分支(如果這是不是已經是這樣了),它和工作樹重置狀態樹幹分支。在此之後,您可以安全地刪除中繼分支。

git-svn不支持開箱即用的裸存儲庫。閱讀http://gsocblog.jsharpe.net/archives/12瞭解更多詳情。但是我不認爲你需要這個複雜的解決方案,因爲你只需要一次導入你的SVN倉庫。

因此,您可以創建一個已經存在的git存儲庫的裸副本並設置好。