如何使用两个Mercurial存储库处理两个项目变体?
我们有一个应用程序,它是开源的,发布为GPLv2。我们还有一个稍微不同的版本,有商业许可证。这两种变体之间的差异非常有限 对于GPL应用程序,我们有一个主要的Mercurial回购协议 我希望能够为商业应用程序保留单独的回购协议(主要是公开的),但我也希望能够定期“推动”对其进行更改(但不是相反)。考虑这些RePOS托管在托管Web服务的项目上。 到目前为止我所做的:如何使用两个Mercurial存储库处理两个项目变体?,mercurial,repository,Mercurial,Repository,我们有一个应用程序,它是开源的,发布为GPLv2。我们还有一个稍微不同的版本,有商业许可证。这两种变体之间的差异非常有限 对于GPL应用程序,我们有一个主要的Mercurial回购协议 我希望能够为商业应用程序保留单独的回购协议(主要是公开的),但我也希望能够定期“推动”对其进行更改(但不是相反)。考虑这些RePOS托管在托管Web服务的项目上。 到目前为止我所做的: 创建了一个新的通信回购协议 已提交商业应用程序的第一个版本(无历史记录) 将通信推送到远程主机 修改的开源回购协议 hg表示,他
hg移植
扩展,但这似乎有点复杂,无法定期使用
我是Mercurial的新手,所以我可能做错了,所以也请建议解决相同问题的其他方法。对于Mercurial这样的分布式版本控制系统,您可以在步骤1中克隆源代码存储库,在起点处有两个具有相同内容的存储库,即您所称的开源和comm。您可以在comm存储库中进行初始更改。随着开发在开源repo中进行,您将定期将更改拉入comm存储库,并将这些更改与那里的更改合并。这将在comm repo中产生额外的合并变更集。只要你不把它们推回到开源回购,你就不会在那里看到它们,它们也不应该在那里打扰你,但我知道你无论如何都想要这些。我认为这里的主要问题是你从无关的存储库开始。你应该创建一个商业版本作为开源版本的克隆,然后把你所有的修改都推到它上面。我可以从头开始,没问题。你的意思是我可以从一个特定的版本(比如上一个版本)开始克隆吗?