除了“默认”之外,我在我的存储库中有一个“compat”分支,它支持旧版本的Python。所以默认的工作流程是我在“默认”中实现功能,合并到“compat”并修复那里的所有兼容性问题。这是一个典型的补丁工作流程,效果非常好。
但是,如果我想引入一些不应该在“compat”中的更改(例如在旧版本上不起作用的功能),该怎么办?为了不破坏我的默认工作流,我必须合并“默认”,然后退出所有不应该在这个分支中的变更集。
有没有更好的方法来处理这个问题(这不会破坏我的默认工作流程)?
答案 0 :(得分:1)
您可以在默认分支机构中创建一个新的分支/书签,用于您在compat中不想要的更改。完成后,您可以将该分支/书签合并为默认值,然后将其合并到compat中,将其退出合并,然后提交。
hg update default
hg merge NonCompatFeature
hg commit -m "Merging NonCompatFeature -> default."
hg update compat
hg merge NonCompatFeature
hg revert --all -r compat
hg commit -m "Merging NonCompatFeature -> compat."
答案 1 :(得分:1)
我能想到避免虚拟合并的唯一方法是通过镜像您使用compat
分支的设置来更改您的工作流程,以添加另一个分支来实现需要更新版本的更改Python(可能称为latest
)
您在default
上实现与旧版Python兼容的功能,并像现在一样合并到compat
,但也将它们合并到latest
。
然后,您就像现在一样修复compat
上的兼容性问题,并以类似的方式在latest
上实现需要Python新功能的功能。
您永远不会从latest
或compat
合并到default
,因此他们的更改不会相互干扰。