如何防止mercurial将推送操作中的更改设置为“public”阶段?我希望他们留下“草稿”。如何保持hg push阶段“草案”中的变更集?
我重新组织起来了很多,而我推动的存储库仅限于我。而且不得不一直改变这个阶段是一个麻烦事。
如何防止mercurial将推送操作中的更改设置为“public”阶段?我希望他们留下“草稿”。如何保持hg push阶段“草案”中的变更集?
我重新组织起来了很多,而我推动的存储库仅限于我。而且不得不一直改变这个阶段是一个麻烦事。
文档能做什么不能清楚地揭示是:
推送相变是不是一个纯粹的本地决策。 - “上传”变更集后,客户端向服务器询问有关提交阶段的更新,服务器通常告诉他们现在“公开”。
因此,.hgrc
-snippet
[phases]
publish = False
具有服务器,其抑制通常的相变有上被投入。然后,服务器将按照推送的相同方式报告这些阶段。
Bitbucket在设置→存储库详细信息→阶段有此选项。
https://www.mercurial-scm.org/wiki/Phases
A repository is "publishing" by default. To make a repository non-publishing, add these lines to its hgrc configuration:
[phases]
publish = False
我不想在推送目标上重写。 –
@RobertSiemer - 你**想**,重写*只有本地*没有意义 –
是的,我确实想要,但这不是问题的一部分。 –
保持阶段为draft
的最直接方式是将远程服务器配置为“非发布”,就像您已经发现的那样。
但还有第二种方式,如果目标服务器由于某种原因无法设置为“非发布”,可能对某些方法有用:使用pull
而不是push
。拉动是只读的,因此如果您可以设置工作流程(例如通过本地别名),以便远程从本地回购拉动更改,则它们将保持在阶段draft
。
好的。尝试推第二个头,稍后在本地回购中删除它,并将* this *更改为远程! –
@LazyBadger:为了什么? –
@RobertSiemer - 好吧,“重写历史”的例子之一 - 当我测试风暴的简单方法时,我只是偶然发现它 –