2016-05-29 44 views

回答

9

文档能做什么不能清楚地揭示是:

推送相变是不是一个纯粹的本地决策。 - “上传”变更集后,客户端向服务器询问有关提交阶段的更新,服务器通常告诉他们现在“公开”。

因此,.hgrc -snippet

[phases] 
publish = False 

具有服务器,其抑制通常的相变有上被投入。然后,服务器将按照推送的相同方式报告这些阶段。

Bitbucket在设置→存储库详细信息→阶段有此选项。

1

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 
+0

好的。尝试推第二个头,稍后在本地回购中删除它,并将* this *更改为远程! –

+0

@LazyBadger:为了什么? –

+0

@RobertSiemer - 好吧,“重写历史”的例子之一 - 当我测试风暴的简单方法时,我只是偶然发现它 –

-1

简短的回答:nohow

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

+0

我不想在推送目标上重写。 –

+0

@RobertSiemer - 你**想**,重写*只有本地*没有意义 –

+0

是的,我确实想要,但这不是问题的一部分。 –

2

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

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

+0

你建议使用'pull'为我工作。我尝试了上面列出的“非发布”设置,但它不适用于我。现在我的“草稿”在服务器上保持这种状态。 –

+0

你如何以这样的方式推动远程从你那里? – binki

+0

你不会推,你ssh到遥控器并从那里拉。以交互方式或使用脚本。 – alexis