3

为包含未推送的变更集的 -r 选项指定修订/修订集的最佳方法是什么,这对于例如在本地克隆或在仅包含已推送的变更集的存储库中创建书签很有用。

当您需要在工作中转而从事其他尚未准备好推动的事情时,通常需要这样做。

4

3 回答 3

2

有一些修订集可用于获取此信息:

  1. first(outgoing())将引用尚未推送到默认推送位置的第一个变更集。

  2. first(!public())将引用尚未推送到任何地方的第一个变更集。

p1([set])如果您想更新到这些变更集的父级以为您的新修复启动一个新的匿名分支,您可能希望将这些与谓词结合起来。

此外,在开始修复工作之前,您可能希望将未完成工作的变更集的阶段设置为secret以防止它们被意外推送。

您可以使用hg phase --secret --force -r "!public()"和使用hg phase --draft -r "secret()"来再次切换它们(尽管这会将所有秘密变更集更改为草稿,因此如果您在其他分支上使用阶段,则需要更具体)

于 2013-06-05T21:10:26.543 回答
0

如果我理解正确,您想要等效的git stash,这将作为 mercurial 的扩展来实现。

查看维基页面。https://www.mercurial-scm.org/wiki/ShelveExtension

编辑:我不得不提一下,我不使用这个工作流程,在你的情况下,我会创建一个“dev”分支并定期提交(甚至是 WIP 提交),当稳定时你可以合并到 master。

于 2013-06-05T20:00:39.693 回答
0

如果你想要revset(s),你必须使用outgoing([path])(或! outgoing([path])作为变更集规范。

[path] 是存储库的 URL(或别名???),如果不是默认值

于 2013-06-06T20:12:13.633 回答