除了“默认”之外,我的存储库中有一个“compat”分支,它支持旧版本的 Python。所以默认的工作流程是我在“默认”中实现功能,合并到“兼容”并修复那里的所有兼容性问题。这是一个典型的补丁工作流程,效果非常好。
但是,如果我想引入一些不应该在“兼容”中的更改(例如,在旧版本上不起作用的功能)怎么办。为了不破坏我的默认工作流程,我必须合并“默认”,然后退出所有不应该在这个分支中的变更集。
有没有更好的方法来处理这个问题(这不会破坏我的默认工作流程)?
您可以在默认分支上创建一个新的分支/书签,用于您不希望在 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."
我能想到的避免虚拟合并的唯一方法是通过镜像您与分支的设置来稍微改变您的工作流程,compat
以添加另一个分支来实现需要更新版本的 Python(可能称为latest
)的更改
您将实现与旧版本 Python 兼容的功能,default
并compat
像现在一样合并到latest
.
然后,您将像现在一样修复兼容性问题,并以类似的方式compat
实现需要 Python 新功能的功能。latest
您永远不会合并latest
或compat
合并,default
因此它们的更改不会相互干扰。