假设我正在创建一组共享大部分代码而非全部代码的产品(例如:具有多个前端的应用程序:命令行,Windows / MAC / Linux GUI,移动(最小)GUI,网页GUI等)
此外,假设共享代码不能轻易拆分和“库存化”。
我考虑为不同的产品(例如分支机构:CLI,Windows,MAC,Linux,移动设备,Web)使用mercurial命名分支或代码中的编译标记(例如#if (FRONT_END == CLI) #elif (FRONT_END == WEB) ...
)。
我对这两种方法都不满意。这是我的不满:
命名分支:
编译标志:
感谢名单
答案 0 :(得分:0)
我想,我有最好的策略。
前言:我强烈地,非常讨厌 ifdef'ed spaghetti-code
指定分支机构并不差,但管理层有缺点,是的。经过一些尝试和失败后,我停止了“单代码库+多重MQ补丁”的想法。使用新的Mercurial,您可以拥有多个队列,您可以使用受保护的补丁...因此您有一个香草代码 - 许多(任何)目标
未来阅读:“Mercurial:The Definitive Guide”,Chapter 12. Managing change with Mercurial Queues和Chapter 13. Advanced uses of Mercurial Queues