您将如何使用 Mercurial 解决以下问题。
假设我有一个图书馆核心。我现在想为该库开发一个名为 Extension 的扩展。我想让 Core 在物理上与 Extension 分开,也就是说,Core 是一个开源库,而 Extension 是一个基于 Core 构建的私有库(也许它包含一些我想保持个人的东西。无论如何。)。显然,我不想将 Extension 中的整个源代码推送到公共存储库。但另一方面,我可能想将某些更改从扩展推送到核心(如果我决定将扩展的一部分“捐赠”到核心),反之亦然(如果我想合并错误修复,比如说)。
您将如何解决这个问题,最大限度地减少将 Extension 泄漏到 Core 的风险(一旦历史被推送到公共服务器,就没有回头路了!),同时保持灵活地为某些更改执行此操作。分支机构?克隆人?MQ?还有什么?
我目前只熟悉克隆存储库,非常喜欢它的简单性。
编辑: 我想出了这个方案,但我不能让它在 Windows 下工作。两个存储库(核心和扩展)。在 Extension 中有两个分支,也是 Core 和 extension。现在,您可以在 Mercurial 中为每个存储库注册一个钩子,因此我想在核心存储库中注册一个“pretxnchangegroup”钩子,该钩子不允许从扩展分支签入,如Mercurial book 中所述。除了我不太明白它在 Windows 下工作。所以:
- 任何人都有这样的例子(事实上,任何改变交易结果的钩子)在windows下?
- 我仍然可以使用移植来挑选从扩展到核心分支的更改,对吗?