2011-08-11 130 views
21

我是SVN用戶,目前正在將我的項目移至git。多個項目在一個git回購?

我使用一個SVN存儲庫來存放我創建的所有項目。我的結構是這樣的:

/ 
    /group1 
     /subgroup1 
      /project1 
       /branches 
        ... 
       /tags 
        ... 
       /trunk 
        ... 
      /project2 
       ... 
     /subgroup2 
      /project3 
       ... 
      /project4 
       ... 
    /group2 
     /subgroup3 
      ... 
     /subgroup4 
      ... 
    /lib 
     /lib1 
     /lib2 
     /lib3 

正如你可以看到我把我的項目組和/lib包含庫項目之間共享。

我選擇了這種結構,因爲:

  1. 類似回購的結構在那裏我學會了使用SVN公司使用。
  2. 讓我有一個svnserve運行作爲我的機器上託管其所有項目上的服務/守護程序(我不喜歡的文件路徑的方法)。

現在...的地步。我想知道:

如何,如果我移動到Git的這種工作流將工作?

具體做法是:

  1. 難道是簡單的遷移回購樹的git?
  2. 假設每個項目都需要單獨的回購*,我將如何能夠滿足他們全部通過svnserve混帳當量(以類似的方式非常分組)。

*)我讀了關於git,我明白是這樣,但我想仔細檢查經驗豐富的人。

回答

29

在Git中,它是更好的,如果需要,並作爲每個項目的子模塊(SVN的外部的等價物),以在其自己的回購每一個項目,而在另一個回購庫。

這是因爲在Git中,回購是一個比SVN更輕量級的概念,而且更重要的是,沒有能力在回購庫中克隆單獨的文件夾(不要與稀疏結賬混淆),就像你一樣能夠簽出和處理SVN中的單個文件夾。因此,如果您將所有項目都放在一個回購單中,則必須將其全部克隆。

使用smart-http,git守護進程和ssh服務Git repos非常簡單。還有Gitolite用於管理多個回購(包括授權和驗證)。閱讀關於ProGit服務Git回覆鏈接的章節 - http://progit.org/book/ch4-2.html

進入您的分組,您可以根據您的分組結構將該回購置於文件夾中,並使用智能http方法進行服務,從而使回購網址看起來像你會與SVN使用的URL,將所有的項目似乎是分組等下

+0

我可能真的去買書來理解git。我只是想知道讓我的SVN回購作爲主要回購併使用git來進行本地源代碼控制會更有意義嗎?我傾向於在多臺機器上工作,所以這會讓我覺得有些道理。 –

+0

@Michal M是的,許多人使用git-svn橋來做到這一點。這實際上不是一個不錯的選擇 – manojlds

+0

謝謝兄弟,你的回答絕對是我的一天 –

1

可以在一個庫中的所有項目,但它是非常糟糕的主意,因爲你總是有工作整個回購。

要運行git的服務器,如果你只需要一個用戶(您),並安裝Git和SSH訪問的服務器就足夠了。例如參見this article

相關問題