2011-01-06 114 views
6

有1個主項目的回報率和2個額外的項目共享主體工程的某些部分 - 模型,插件等組織多個項目的git倉庫的好方法

目前所有項目都在使用svn的外部相同的svn庫共享部分。

將這種佈局移動到git的最佳方式是什麼?

回答

3

您將需要每個部件的存儲庫。 (每個項目和一個或多個共享部分)。

要包含這些共享部分,有兩種可能性。

首先,您可以爲共享零件創建(私有)gem,這意味着您不需要鏈接任何東西,只需將gem [gemname]添加到您的Gemfile。當您更新寶石時,所有項目都將使用更改後的代碼。

當你想在你的項目中包含外部代碼時,你需要一點點的組織。您可以創建一個根映射,您可以將共享和項目存儲庫都複製到該映射。然後,您創建一個(相對)符號鏈接到共享代碼文件夾。您可以將此符號鏈接添加到您的git存儲庫並提交。您必須更新並提交兩個存儲庫分開。

第二種方法的一個例子:

- projectfolder 
--- shared code 
--- project code 
----- lib 
------- shared (link to shared code) 

由命令LN -s 「../../../shared代碼」 共享創建共享代碼的鏈接

當然,這隻適用於支持符號鏈接的系統(mac和* nix)

2

即使我接受第一個答案,我們選擇了一個不同的方法。由於基本上所有的應用程序都是1個項目(前端,後端和api)的不同方面,所以他們共享一個LOT,因此我們決定將它們全部放入1個存儲庫和符號鏈接共享部分(git可以處理該部分)。

這簡化了存儲庫的組織,但稍微複雜了部署腳本,這對我們來說是合適的。