如何阻止 mercurial 将变更集置于推送操作的“公开”阶段?我希望他们留下“草稿”。
我经常 rebase 和 histedit,而我推送到的存储库仅供我自己使用。不得不一直改变相位是一件令人讨厌的事情。
如何阻止 mercurial 将变更集置于推送操作的“公开”阶段?我希望他们留下“草稿”。
我经常 rebase 和 histedit,而我推送到的存储库仅供我自己使用。不得不一直改变相位是一件令人讨厌的事情。
文档没有明确揭示的是:
推动阶段的变化不是纯粹的本地决定。– 在“上传”变更集之后,客户端向服务器询问有关提交阶段的更新,服务器通常会告诉他们现在是“公开的”。
因此,.hgrc
-snippet
[phases]
publish = False
必须放在服务器上,这会抑制那里通常的相变。然后,服务器将以与推送阶段相同的方式报告这些阶段。
Bitbucket 在Settings → Repository details → Phases下有一个选项。
保持阶段的最直接方法draft
是将远程服务器配置为“非发布”,正如您已经发现的那样。
但是还有第二种方法,如果由于某种原因无法将目标服务器设置为“非发布”,这可能对某些人有用:使用pull
而不是push
. 拉取是只读的,因此如果您可以设置您的工作流程(例如通过本地别名),以便远程从您的本地存储库中拉取更改,它们将保持在 phase 中draft
。
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