当我无法访问远程.hg/hgrc
文件时,如何告诉mercurial远程服务器(例如bitbucket上)是非发布的?
mercurial的最新版本有一个phases概念,可以让人们跟踪哪些变更集已被共享(public
),哪些变更集没有(draft
)。 draft
变更集允许使用rebase
等存储库更改操作,但不允许public
变更集,因为其他变量集可能取决于后者。
默认情况下,将更改集推送到公共服务器会将其阶段更改为public
,但如果服务器是私有的或专用于代码审核(即人们不应该提取),那么推送到“非” - 发布“服务器不应该改变阶段。
告知服务器不发布的documented way是将[phases]
部分添加到服务器上的.hg/hgrc
文件 :
[phases]
publishing = false
在我看来,应该有一种方法可以在我的一个本地hgrc
文件中包含一行说明特定服务器是非发布的,但我找不到任何文档来建议如何。也许这种行为可以用钩子定制?
答案 0 :(得分:3)
目前没有办法做到这一点,希望永远不会发生。
原因如下:
如果您允许本地存储库覆盖远程存储库配置,那么您只是使整个阶段机制无用。阶段的关键是防止用户执行可能“破坏”同步流的操作
接收方有责任描述如何使用收到的变更集。如果您反转该逻辑,允许发件人覆盖这些设置,那么,如何确保两个发件人将使用相同的配置?如果配置不同,应该保留哪一个?如何在接收器上标记变更集?
在某种程度上,就像本地存储库能够在未经授权的情况下将变更集推送到远程一样,只需在本地覆盖远程配置即可。