2011-10-19 66 views
1

我想在我的公司使用git-svn來處理某個項目「proj1」。git-svn和大量的svn倉庫與許多「子庫」

但是我們的代碼庫是這樣的:

proj1/ 
    app1/ 
    component1/ 
     branches/ 
     tags/ 
     trunk/ 
    component2/ 
     branches/ 
     tags/ 
     trunk/ 
    app2/ 
    component22/ 
     branches/ 
     tags/ 
     trunk/ 

你會如何應對呢?

我以爲git submodules是答案,但我不太瞭解它,從谷歌搜索似乎它不支持git-svn。

謝謝。

編輯:這個問題有關Svn -> git migration with several trunk/branches/tags。雖然沒有正確的答案。排名最高的一家預計很少有「子庫」。但是在我們的項目中有很多。

回答

2

通常的做法是將componentcoherent set of files與其own development lifecycle)關聯到git倉庫。
這意味着您可以創建幾個git-svn clone,每個具有引用不同組件的SVN地址。

從那裏,如果需要,您可以在單個父代回購庫中引用那些各種回購作爲​​submodules
但這個想法仍然存在:一旦你在這些子模塊之一中,你實際上就在一個git repo中:該回購將支持git-svn dcommit操作。

+0

嗨。謝謝你的回答。你知道任何可以自動化的腳本嗎(例如,遍歷SVN倉庫,檢測「sub-repos」,做「git svn clone」和添加子模塊)? – woky

+0

@woky不,因爲SVN中的目錄可以代表...任何東西(標籤,分支,應用程序,組件,模塊...)。在你的情況下,一個組件是一個包含'branches','tag'和'trunk'的目錄,所以腳本不應該太難。 – VonC