好的,这是我的情况:
我使用的是开源软件包。我们假设名称是 MyApp 。
由于我的需要,我修改了MyApp v3.0.2 的源代码。它有效。
现在,MyApp(上游)已更新为 v3.1.0 ,并且更改日志很有趣,因为它提到了一些我非常希望应用于我的安全修复程序。
我使用Mercurial跟踪了v3.0.2以及随后的更改。现在,将这些更改集成到v3.1.0的最佳方法是什么?
我最初的计划:对3.0.2执行我的版本差异,恢复到3.0.2,用3.1.0覆盖(并提交),然后对差异进行逐个文件分析,并应用它们用手。
你认为有更好的方法吗?
答案 0 :(得分:2)
差不多,除了你应该能让Mercurial处理差异。
所以基本的工作流程(与你的相似):
hg update <tag>
- 您确实标记了该版本,对吗?)upstream-3.1.0
)hg heads
)这就是它应该如何工作,如果你所做的改变不与上游的变化发生冲突,它实际上可能会有效。如果做不到这一点,您将获得更多或更少的冲突,您可以通过这些冲突逐一解决。
将您的存储库克隆到本地其他地方可能是最明智的,并在克隆的存储库中执行此操作。这样一来,如果一切都发生了可怕的错误,你就可以把那个克隆吹走,重新开始。毕竟很好,整洁,只需将它推回原来。
您可能希望将上游更改放在不同的分支上;或者,如果这感觉很麻烦,只要记得在版本3.1.1或者下一个版本中使用相同的技巧时更新到upstream-3.1.0
。