2011-04-28 80 views
0

我正在用Ruby on Rails編寫應用程序。此應用程序將交付至少兩種不同的客戶類型。基地總是一樣的,但一些意見不同。這主要是它。目前。我可以使用Git維護一個應用程序的兩個版本嗎?

是否有任何方式,例如使用分支來使用相同的代碼庫並僅分離視圖,例如?我閱讀Git手冊進行分支,但我仍不確定這是否是實現我所需的最佳方法。

另一個想法是分叉。但是,這很聰明嗎?如果我在fork A的代碼中更改某些內容,是否可以輕鬆地將這些更改合併到fork B中?

+0

我有一個類似的要求..我有一個共同代碼的主分支。我從主人創建了2個分支,並保持主人一樣,並繼續在2個分支上工作。 – rubyprince 2011-04-28 09:47:06

+0

感謝您的評論。我將不得不考慮一點。奧古斯托的解決方案聽起來很有趣,我一定會嘗試找出如何做到這一點。 – 2011-04-28 13:35:44

回答

4

git中的分支和分支並不差,因爲合併支持很好(可能是最好的VCM)。

就個人而言,我不喜歡分支或分叉一個項目,提供不同的定製的主意,因爲它可以非常迅速地變得非常困難,例如如果你有15個不同的部署,你會怎麼做?

我認爲一個更好的方法是構建應用程序,使其行爲有所不同,具體取決於某些參數。我很清楚有時這些實現是非常不同的,所以這可能不再有用。 另一種方法是在GEM中構建應用程序的核心,作爲應用程序的服務,您爲每個客戶端定製的唯一東西就是視圖。當然,創業板應該足夠通用以提供您所需的所有服務。

請與我們分享你決定什麼,因爲有你的問題沒有最佳答案。

0

它可能會更好地讓你的產品在構建或運行時的類型之間進行選擇,這樣你就可以使用一組源代碼。

否則,它可能與分支機構和合並,但你會有更多的難度管理事情。分叉在這個層面基本上是分支的。

0

我同意@Augusto。您可以在兩種不同的環境中運行您的應用程序,即production_A和production_B。從那裏,你可以根據Rails.env使用SettingsLogic定義配置,然後選擇該視圖中使用,例如當你的應用程序中引用這些設置。

相關問題