2010-12-07 98 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的一个应用 - 如果你在两个地方重复了代码,那么它会失去同步。

在这种情况下,您可以将所有配置文件保存在不同的分支中,或者使用基本文件并为每个客户提供配置覆盖。那么你只需要建立一个构建过程,就可以把它放在一起给一个给定的客户。

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