可配置软件的分支策略

时间:2010-12-07 21:00:24

标签: version-control configuration branch

我正在为各种客户制作一个应用程序。根据客户的不同,软件的用户界面元素可能会有所不同。例如,一个客户可能需要菜单项X,而另一个客户获得菜单项Y。

目前,用户界面的所有配置都是通过XML完成的(大部分都是使用spring完成的)。对于不同的菜单选项示例,一个XML文件可能包含要在UI上显示的菜单选项列表。

我正在试图弄清楚如何最好地管理软件的分支,以便他们都可以使用相同的核心基线,并且所有人都接收错误修复,更新等。分支机构之间唯一不同的是是XML配置文件。

是否有管理此问题的良好做法/技巧?我不完全确定每个客户都需要不同的分支 - 这只是我的第一个想法,所以我愿意接受其他建议。但是,如何最好地设置它的任何帮助将不胜感激。

如果知道的话,我们没有为这个项目使用分布式版本控制系统(使用SVN)。

感谢,

杰夫

3 个答案:

答案 0 :(得分:3)

如果您能管理它,我会强烈建议每个客户不要使用一个分支机构。只需考虑合并开销,乘以您可能出于其他原因(例如发布后修补)的正常分支数。

如果您可以坚持使用配置方法 - 在不重新编译的情况下打开和关闭功能 - 我希望您会发现更容易维护的方法。

答案 1 :(得分:3)

在trunk中,我会维护几个以客户端命名的配置文件。在准备交付时,我只会复制相关的配置文件,并按照软件的预期重命名。

答案 2 :(得分:2)

如果客户之间唯一真正不同的是XML配置文件,那么我就不会为每个客户创建一个完整的代码分支。这是DRY的应用程序 - 如果你在两个地方重复了代码,那么它就会失去同步。

在这种情况下,您可以将所有配置文件保存在单独的分支中,或者使用基本文件并为每个客户提供配置覆盖。然后,您只需要构建一个可以将所有内容组合在一起的构建过程。

我知道所有主观,但这就是我如何解决问题。