2010-12-07 76 views
3

我正在研究爲各種客戶生產的應用程序。根據客戶的不同,軟件的用戶界面元素可能會有所不同。例如,一個客戶可能需要菜單項X,而另一個客戶獲取菜單項Y.可配置軟件的分支策略

當前,用戶界面的所有配置都是通過XML完成的(其中大部分都是使用spring)。對於不同的菜單選項示例,一個XML文件可能具有要在UI上顯示的菜單選項列表。

我想弄清楚如何最好地管理軟件的分支,以便他們都可以使用相同的核心基線,並且都收到錯誤修復,更新等。唯一不同的是分支是XML配置文件。

是否有良好的做法/技術來管理?我不完全確定每個客戶都需要不同的分支 - 這只是我的第一個想法,所以我願意接受其他建議。但任何幫助如何最好地設置這一點,將不勝感激。

如果有助於知道,我們沒有在這個項目中使用分佈式版本控制系統(使用SVN)。

感謝,

傑夫

回答

3

如果你能管理它,我會強烈建議不要每個客戶一個分支。考慮合併開銷,乘以正常數量的分支,您可能會因爲其他原因(如發佈後修補)而使用該分支。

如果你可以改爲使用配置方法 - 在不重新編譯的情況下打開和關閉功能 - 我希望你會發現一個更簡單的方法來維護。

+0

@Ed,你對維護配置文件的地方有什麼想法? @mouviciel所建議的單個項目中的所有客戶端文件?或者以其他方式? – 2010-12-08 13:57:26

3

在trunk中,我將維護幾個以客戶端命名的配置文件。在準備交付時,我只會複製相關配置文件,並按照軟件的預期重新命名。

+0

我認爲你是對的,有多個配置文件可能是最簡單的。儘管在一個項目中擁有所有不同的客戶端配置文件,但感覺有些不正確。但這仍然是最簡單的方法。 – 2010-12-08 13:56:15

+0

對我來說,這些客戶端配置不是同一個文件的各種版本,它們是不同的文件。根據每個客戶需求的變化,這些文件中的每一個都可以有多個版本。 – mouviciel 2010-12-08 21:23:41

2

如果客戶之間唯一真正不同的是XML配置文件,那麼我不會爲每個客戶創建完整的代碼分支。這是DRY的一個應用 - 如果你在兩個地方重複了代碼,那麼它會失去同步。

在這種情況下,您可以將所有配置文件保存在不同的分支中,或者使用基本文件併爲每個客戶提供配置覆蓋。那麼你只需要建立一個構建過程,就可以把它放在一起給一個給定的客戶。

所有的主觀我知道,但這就是我將如何解決這個問題。