所以我们有应用程序 Pluto 和应用程序 Goofy - 两者都使用相同的 SVN 项目。实际上只有一点配置差异。
现在我面临这个问题:来自 Pluto 的客户想要一些新的变化 - 详细地说,他想要为 Javascript 和我们在 JSF 环境中使用的一些 xhtml 标签添加功能。基本上,这是他要求的一种改进 javascript 的方法 - 旧功能必须仍然存在。但是:新功能可能会破坏 Goofy 的某些部分,因为 Goofy 是一个更大的应用程序并且难以测试。实际上,Goofy 是 Pluto 的超集——例如,Goofy 可以做 Pluto 所做的任何事情——但实际上它只是为了测试,最终的 Product 驻留在 Pluto 中。
需要更改的文件是相当静态的,我认为对其中一个文件的最后一次更改是半年多前。在过去的两年里,肯定不会超过几个变化。
我想到的是为 Pluto 创建一个分支,在其中实现对 javascript 和 xhtml 标签的所有更改。开发人员将在主干上开发,我将始终在部署之前合并来自分支的更改(这可能会自动完成)。但是:本地开发有一个问题——因为是trunk,新功能只在分支上,所以在本地为Pluto开发时,新功能将不可用。
另一种方法是使用例如如果 application==Goofy 加载 javascript Goofy,反之亦然。
或者最后 - 尝试和错误,例如合并所有更改并修复错误:-)
你们会如何决定这个?