【发布时间】:2011-02-20 15:53:08
【问题描述】:
我们有一个应用程序,它是开源的,并以 GPLv2 的形式发布。我们还有一个略有不同的版本,带有商业许可证。两种变体之间的差异非常有限。
我们有一个用于 GPL 应用程序的主要 Mercurial 存储库。
我希望能够为商业应用程序保留一个单独的存储库(主要是公开的),但我也希望能够定期“推送”对其进行更改(但不是相反)。考虑到这些存储库托管在项目托管 Web 服务上。
到目前为止我做了什么:
- 创建了一个新的comm repo
- 提交了商业应用的第一个版本(无历史记录)
- 将comm推送到远程主机
- 修改开源 repo
- 试图从 open-source 推送到远程 comm,hg 说 repos 不相关
- 尝试使用 -f(强制)选项从 *open-source'* 推送到 comm,hg 现在只显示警告
第 6 步的问题是我会将所有变更集推送到 comm 存储库,这是不正确的。我基本上想从给定的时间点推送更改(非常像合并两个 SVN 分支)。
我正在学习 hg transplant 扩展,但这似乎有点复杂,无法定期使用。
我是 Mercurial 的新手,所以我可能做错了,所以还请提出解决相同问题的其他方法。
【问题讨论】:
-
我认为这里的主要问题是您从不相关的存储库开始。您应该将商业版本创建为开源版本的克隆,然后将所有更改推送到它。
-
好吧,我可以重新开始,没问题。你的意思是我可以从一个特定的版本开始克隆(比如最后一个)?
标签: mercurial repository