2012-04-16 49 views
1

我有一個項目,其中包含一個核心的Ruby on Rails項目,將爲幾個不同的客戶端部署。我希望能夠更新核心應用程序,同時在視圖和公共文件夾中分別進行更改。如何使用git通過單獨的客戶端資產管理代碼庫?

換句話說,我需要每次更改app/controllers/product_controllers.rb時,所有客戶端都會在app/view/products/index.html.erb或public/css/styles.css中分別管理爲Acme和新公司和瓊斯等

這似乎不是什麼分支機構/標籤是爲了解決由於這些文件夾中的變化永遠不會被合併不同。

+0

也許子模塊或捆綁您的應用程序作爲寶石的公共部分。 – apneadiving 2012-04-16 20:33:50

回答

1

我會爲每個客戶端創建單獨的分支,併合並需要合併的更改(在您的情況控制器中),每次進行重大更改時,給予客戶。

您也可以將您的代碼模塊(我不會建議究竟如何 - 這是給你和不同的對每一個項目),並把它們作爲不同的項目。

在類Unix系統中,如果您有類似於「應用程序核心」的內容(每個項目都是通用的),您甚至可以將其保存在一個文件夾中,並使用符號鏈接來使用不同的項目。

+0

對於每個客戶的分支,我的一個擔憂是如何合併這些更改。想象一下,我爲產品模型添加一個新屬性,然後在控制器中爲新屬性添加某種處理,然後添加控制器使用的新助手。如果我在Acme的分支中這樣做,我如何有效地將這些回饋給其他人?一個單獨的合併命令對4個客戶端來說並不壞,但是當我有100個客戶端時呢?特別是如果上述導致4或5分開合併。 – 2012-04-16 22:14:54

+0

如果你要在這麼多的使用相同的代碼(甚至100)項目,那麼它應該被視爲單獨的模塊(類型的內核或什麼的 - 在紅寶石也許寶石[我不是紅寶石的人,所以我不肯定])有自己的變化歷史,自己的文檔和擁有非常嚴格的API。除此之外,單元測試至關重要。我無法想象你將如何處理如此多的分歧分支。確實,4,5是好的 - 不是100。它不是一個合併問題(你可以編寫bash腳本來大量使用它)。問題是在項目#42中可能會破壞某些東西,而且你甚至不會意識到它。 – shark555 2012-04-16 22:34:32

0

你仍然可以使用一個分支爲每個客戶端。分支機構不必合併。或者你可以爲每個客戶分派。它不同於分支,它創建一個單獨的回購

相關問題