我目前在一家使用Mercural的公司工作,但是大多数开发人员都使用MQ而不是新的evolve流。因此,大多数用户没有启用扩展。
每次我推送到主存储库时,.hg/store/obsstore
都会自动使用过时的变更集推送。这是有问题的,因为在此之后,所有未启用扩展名的用户都收到以下消息:
在this答案中提出的一种解决方案涉及在本地删除.obsstore
,但这不是我想要的,因为我仍在使用evolve
,这意味着我希望过时的变更集保持隐藏。不仅如此,服务器存储库上还应提供过时的标记和变更集,以便我们保留使用evolve
的好处,例如智能冲突解决。
我希望一种方法不将过时的变更集推送到服务器存储库,或者(正确的方式)让服务器在不启用evolve
的情况下不将过时的数据推送到客户端。
这可能吗?如果没有,为什么不呢?
最佳答案
如果您确实想在本地使用Evolution而不交换您的标记,则可以这样做。我将告诉您如何做,但是请注意,您将遇到与使用剥离和重新建立基础而没有发展的情况完全相同的问题。如果推送变更集的先前版本并推送新版本,则服务器将同时具有两个版本。
如果只想在本地使用Evolve,则可以在配置文件中添加以下行:
[experimental]
createmarkers=True
allowunstable=True
exchangeopt=False
关于mercurial - 如何在不扩展扩展范围的情况下避免对客户发出过时的警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50763422/