5

如何阻止 mercurial 将变更集置于推送操作的“公开”阶段?我希望他们留下“草稿”。

我经常 rebase 和 histedit,而我推送到的存储库仅供我自己使用。不得不一直改变相位是一件令人讨厌的事情。

4

4 回答 4

11

文档没有明确揭示的是:

推动阶段的变化不是纯粹的本地决定。– 在“上传”变更集之后,客户端向服务器询问有关提交阶段的更新,服务器通常会告诉他们现在是“公开的”。

因此,.hgrc-snippet

[phases]
publish = False

必须放在服务器上,这会抑制那里通常的相变。然后,服务器将以与推送阶段相同的方式报告这些阶段。

Bitbucket 在Settings → Repository details → Phases下有一个选项。

于 2016-05-29T21:06:55.643 回答
4

保持阶段的最直接方法draft是将远程服务器配置为“非发布”,正如您已经发现的那样。

但是还有第二种方法,如果由于某种原因无法将目标服务器设置为“非发布”,这可能对某些人有用:使用pull而不是push. 拉取是只读的,因此如果您可以设置您的工作流程(例如通过本地别名),以便远程从您的本地存储库中拉取更改,它们将保持在 phase 中draft

于 2016-06-04T15:11:45.223 回答
2

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
于 2016-05-29T19:13:23.587 回答
-1

简短的回答:不知道

如果你想在本地和推送目标上重写历史,你必须

于 2016-05-29T19:14:58.780 回答