11

当我无权访问远程文件时,如何告诉 mercurial 远程服务器(例如在bitbucket上)未发布?.hg/hgrc

背景

最新版本的 mercurial 有一个阶段概念,允许人们跟踪哪些变更集已共享(public),哪些未共享( draft)。rebase在变更集上允许进行存储库更改操作draft,但不允许public变更集,因为其他人可能依赖于后者。

public默认情况下,将变更集推送到公共服务器会将其阶段更改为阶段。

告诉 mercurial 服务器未发布的记录方法是在服务器上的文件中添加一个[phases]部分:.hg/hgrc

[phases]
publish = false

在我看来,应该有一种方法可以在我的一个本地hgrc文件中包含一行,说明特定服务器未发布,但我找不到任何文档来建议如何发布。也许这种行为可以用钩子定制?

参考

4

1 回答 1

4

目前没有办法做到这一点,希望它永远不会发生。

原因如下:
如果您允许本地存储库覆盖远程存储库配置,那么您只会使整个阶段机制变得无用。这些阶段的重点是防止用户执行可能“破坏”同步流的操作。
接收者有责任描述如何使用接收到的变更集。如果您颠倒该逻辑,允许发件人覆盖这些设置,那么,您如何确保两个发件人将使用相同的配置?如果配置不同,应该保留哪一个?应该如何在接收器上标记变更集?

在某种程度上,这就像本地存储库能够在未经授权的情况下将变更集推送到远程一样,只需在本地覆盖远程配置即可。

于 2012-05-25T11:28:41.750 回答