Mercurial 相当于 git 的 HEAD~1

发布于 2024-11-15 02:57:31 字数 121 浏览 2 评论 0原文

在 git 中,使用 HEAD~1 识别相对于存储库中最新提交的提交非常方便。

我已经搜索过,但在 Mercurial 中找不到对应的东西。我发现 Mercurials 版本号相当烦人。

In git it's quite convenient to identify a commit relative to the latest commit in the repo with HEAD~1.

I have searched and cannot find an equivalent for this in mercurial. I find mercurials revision numbers rather annoying.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

悲欢浪云 2024-11-22 02:57:31

正确答案是 .^.~1

tip 指向进入存储库的最新版本,而不是您当前所在的版本。任何包含 tip 的答案都是不正确的。

Mercurial 的 revset 语法在此处更详细地指定: https://www.mercurial-scm .org/repo/hg/help/revsets

x^n:x 的第 n 个父级,n == 0、1 或 2。对于 n == 0,x;对于 n == 1,x 中每个变更集的第一个父级;对于 n == 2,x 中变更集的第二个父级。

x~n:x的第n个第一祖先; “x~0”为x; “x~3”是“x^^^”。对于 n < 0,x 的第 n 个明确的后代。

x^:相当于“x^1”,x 中每个变更集的第一个父级。

The correct answer is .^ or .~1.

tip points to the latest revision that entered the repository, not the current revision you're on. Any answers that include tip in them are incorrect.

Mercurial's revset syntax is specified in more detail here: https://www.mercurial-scm.org/repo/hg/help/revsets

x^n: The nth parent of x, n == 0, 1, or 2. For n == 0, x; for n == 1, the first parent of each changeset in x; for n == 2, the second parent of changeset in x.

x~n: The nth first ancestor of x; "x~0" is x; "x~3" is "x^^^". For n < 0, the nth unambiguous descendant of x.

x^: Equivalent to "x^1", the first parent of each changeset in x.

晌融 2024-11-22 02:57:31

Mercurial 的 revset 功能非常强大(并且比 git 修订规范语法要简单得多):请参阅 hg help revsets (或在线访问:http://www.selenic.com/mercurial/hg.1.html#specifying-revision-sets)。

请参阅此处的谓词列表(我不知道为什么它们没有显示在在线文档中):http://hg.intevation.org/mercurial/crew/file/e597ef52a7c2/mercurial/ revset.py#l811

在您的情况下,这将是:p1(tip)

The revset feature of Mercurial is extremely powerful (and much less arcane than git revision specification syntax): see hg help revsets (or online at: http://www.selenic.com/mercurial/hg.1.html#specifying-revision-sets).

See here for a list of predicates (I don't know why they aren't displayed in the online doc): http://hg.intevation.org/mercurial/crew/file/e597ef52a7c2/mercurial/revset.py#l811

In your case that would be: p1(tip).

南渊 2024-11-22 02:57:31

有一个mercurial 扩展,它添加了类似 git 的命令。
具体命令为hg log -pr .^1

有关更多信息,请参阅检查 hg 中的变更集

编辑:使用.^1,而不是tip^1。如下所述,tip 给出了整个存储库中的最新提交,这可能不是您想要的。 . 的含义更接近 git 的 HEAD。 (另请参阅:将点指定为 Mercurial 中的修订版

There is a mercurial extension that adds git like commands.
Specific command is hg log -pr .^1.

For extra information, see examining a changeset in hg

Edit: Use .^1, not tip^1. As mentioned below, tip gives the most recent commit in the entire repo, which is possibly not what you want. The . is closer in meaning to git's HEAD. (See also: Specify dot as a revision in Mercurial)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文