我们有一个应用程序,它是开源的,并以GPLv2的形式发布。我们的版本略有不同,并附有商业许可证。两种变化之间的差异非常有限。
我们有一个主要的Mercurial回购用于GPL应用程序。
我希望能够为商业应用程序保留一个单独的仓库(主要是公开的),但我也希望能够定期“推动”对它的更改(但不是相反)。请考虑这些存储库托管在托管Web服务的项目上。
到目前为止我做了什么:
步骤6的问题是我会将所有变更集推送到 comm repo,这是不正确的。我基本上想要在给定的时间点推送更改(非常类似于合并两个SVN分支)。
我正在学习hg transplant
扩展,但这似乎有点复杂,可以定期使用。
我是Mercurial的新手,所以我可能做错了,所以请提出解决同样问题的其他方法。
答案 0 :(得分:1)
使用像mercurial这样的分布式版本控制系统,您将在步骤1中克隆源存储库,其中包含两个在起始点具有相同内容的存储库,即 open-source 和 comm 你正如他们所说的那样。您可以在 comm 存储库中进行初始更改。随着开发在 open-source repo中进行,您将定期将更改提取到 comm 存储库中,并将这些更改与其中的更改合并。这将在 comm repo中生成其他合并更改集。只要你不将它们推回到开源回购中,你就不会在那里看到它们,它们不应该在那里打扰,但这就是我理解你想要的东西。