【发布时间】:2012-05-23 19:11:37
【问题描述】:
当我无权访问远程 .hg/hgrc 文件时,如何告诉 mercurial 远程服务器(例如最初在 bitbucket,但它们不再支持 Mercurial)未发布?
背景
最新版本的 mercurial 有一个 phases 的概念,它允许跟踪哪些变更集已共享 (public),哪些未共享 (draft)。在 draft 变更集上允许像 rebase 这样的存储库更改操作,但在 public 变更集上不允许,因为其他人可能依赖于后者。
将变更集推送到公共服务器将默认将其阶段更改为public,但如果服务器是私有的或专用于代码审查(即人们不应该能够拉取),那么推送到那个“非发布" 服务器不应该改变阶段。
告诉 mercurial 服务器不发布的documented way 是在服务器上的.hg/hgrc 文件中添加一个[phases] 部分:
[phases]
publish = false
在我看来,应该有一种方法可以在我的本地 hgrc 文件之一中包含一行,说明特定服务器未发布,但我找不到任何文档来建议如何发布。也许这种行为可以用钩子来定制?
参考文献
【问题讨论】:
-
一个好点,我怀疑最好在邮件列表中提出。也许对
outgoing进行更改,以便列出是否需要更改阶段。 -
此问题的未来查看者请注意:BitBucket 现在可以选择将存储库配置为非发布。在这种情况下,不需要执行 OP 要求的操作。我怀疑需要因为这将消退.. 例如,Mozilla 用户存储库自 2015 年 2 月起不再发布 (mozilla-version-control-tools.readthedocs.org/en/latest/…)
-
专门针对 bitbucket(已标记),you can configure this in the repository’s settings。
-
文档现在说“publish = False”而不是“publishing = false”
-
@ecm 我已经删除了 bitbucket 标签并添加了评论。在先前表示对 mercurial 的承诺之后,Atlassian 放弃了 mercurial 用户的事情非常不幸。我们现在使用本地的Heptapod 实例,确实没有这个问题。
标签: mercurial mercurial-phases