Mercurial分支与编译标志:一个代码库--多个产品

Mercurial分支与编译标志:一个代码库--多个产品,mercurial,compiler-flags,Mercurial,Compiler Flags,假设我正在创建一组产品,它们共享大部分代码,但不是全部代码,例如:一个具有多个前端的应用程序:命令行、Windows/MAC/Linux GUI、mobile minimal GUI、web GUI等 此外,让我们假设共享代码不容易分离和“库化” 我正在考虑为不同的产品使用mercurial命名的分支,例如分支:CLI、Windows、MAC、Linux、Mobile、Web或代码中的编译标志,例如if FRONT\u END==CLI elif FRONT\u END==Web 我对这两种方法

假设我正在创建一组产品,它们共享大部分代码,但不是全部代码,例如:一个具有多个前端的应用程序:命令行、Windows/MAC/Linux GUI、mobile minimal GUI、web GUI等

此外,让我们假设共享代码不容易分离和“库化”

我正在考虑为不同的产品使用mercurial命名的分支,例如分支:CLI、Windows、MAC、Linux、Mobile、Web或代码中的编译标志,例如if FRONT\u END==CLI elif FRONT\u END==Web

我对这两种方法都不满意。以下是我的不满:

命名分支机构:

如果我更改一段共享代码,我需要将其与所有分支合并。 是否有hg命令半自动执行此操作? 很难/很快看出跨所有分支实现的特定功能是如何可视化代码某个区域中的差异的 编译标志:

代码混乱 没有隐式分支修订历史记录。必须手动提交,并显示一条消息,指示哪些产品受到影响 你能建议:

如何减轻我的疑虑? 不同的观点 结合这两种方法的优雅方式 thanx

我想,我有最好的策略给你

前言:我非常非常讨厌意大利面代码

命名的分支机构不错,但也有管理上的缺陷,是的。经过一些尝试并失败后,我停止了使用单代码基+乘法MQ补丁的想法。使用fresh Mercurial,您甚至可以拥有多个队列,您可以使用防护补丁。。。因此,您有一个普通的代码—许多任意目标


未来阅读:Mercurial:权威指南,以及

您是否从相同的项目构建不同的前端?为什么这会对共享代码产生影响?为什么共享代码需要知道它需要在web应用程序和桌面应用程序中使用?分离共享代码有什么问题?