Mercurial 如何更新到存储库中的最后一个公共修订版?

Mercurial 如何更新到存储库中的最后一个公共修订版?,mercurial,Mercurial,我目前使用的是修订版f085ae95,我想使用一个hg update命令访问4ab195c4,它是存储库中公共分支上的最后一个祖先。您可以执行以下操作: hg更新4431b579 这应该行得通 这将更新工作文件夹中的文件,使其处于引用变更集中的任何状态 您还可以使用: hg-r-2 要从工作文件夹中返回2个修订版,我认为也可以执行相同的操作。您可以执行以下操作: hg更新4431b579 这应该行得通 这将更新工作文件夹中的文件,使其处于引用变更集中的任何状态 您还可以使用: hg-r-2 从工

我目前使用的是修订版f085ae95,我想使用一个hg update命令访问4ab195c4,它是存储库中公共分支上的最后一个祖先。

您可以执行以下操作:

hg更新4431b579

这应该行得通

这将更新工作文件夹中的文件,使其处于引用变更集中的任何状态

您还可以使用:

hg-r-2

要从工作文件夹中返回2个修订版,我认为也可以执行相同的操作。

您可以执行以下操作:

hg更新4431b579

这应该行得通

这将更新工作文件夹中的文件,使其处于引用变更集中的任何状态

您还可以使用:

hg-r-2

从工作文件夹中返回2个修订版,我认为这也会做同样的事情。

hg log-r lastpublic and祖先-模板{node}将打印出公共分支上最后一次提交的哈希值,该分支也是当前提交的祖先。因此,您现在可以通过以下方式链接命令calss:

o 911e74cd  44 minutes ago master
|
| @  f085ae95  3 minutes ago
| |  Testing 
| |
| o  4431b579  Today at 11:24 
|/   Feature
|
o  4ab195c4  Today at 04:59 

hg log-r lastpublic和祖先-模板{node}将打印出公共分支上最后一次提交的哈希值,该分支也是当前提交的祖先。因此,您现在可以通过以下方式链接命令calss:

o 911e74cd  44 minutes ago master
|
| @  f085ae95  3 minutes ago
| |  Testing 
| |
| o  4431b579  Today at 11:24 
|/   Feature
|
o  4ab195c4  Today at 04:59 


这两者都可以工作,但是hg更新4431b579需要复制和粘贴修订,而hg up-r-2需要计算基础修订的修订数量。理想情况下,无论我在提交链中有多深,我都可以有一个持续的命令来执行此行为。也许我不明白你的问题到底在问什么?当您在问题中编写更新X时。。。你对X有什么想法?理想情况下X应该是一个常数。因此,无论我是在f085ae95还是4431b579上,命令都会让我转到4ab195c4。例如mercurial使用。表示当前提交。如果mercurial有像base这样的别名,那就太好了。否则,将两个命令链接在一起可能会获得所需的功能。这两个命令都可以工作,但hg update 4431b579需要复制和粘贴修订,而hg up-r-2需要计算基础修订的修订数。理想情况下,无论我在提交链中有多深,我都可以有一个持续的命令来执行此行为。也许我不明白你的问题到底在问什么?当您在问题中编写更新X时。。。你对X有什么想法?理想情况下X应该是一个常数。因此,无论我是在f085ae95还是4431b579上,命令都会让我转到4ab195c4。例如mercurial使用。表示当前提交。如果mercurial有像base这样的别名,那就太好了。否则,将两个命令链接在一起可能会获得所需的功能。我不知道你所说的4ab195c4是什么意思。。。是存储库中我的提交的第一个祖先。所有列出的提交都在存储库中;如果它们不在存储库中,则无法列出。然而,4ab195c4是一个提交,它是@、当前版本和代码段开头上方的某个不可见版本的祖先,因此您可以使用last祖先ancestorsother找到它,因为正确的other.4ab195c4是一个已提交给master的修订版,因此如果我克隆存储库,我将得到4ab195c4。f085ae95和4431b579仅存在于我的本地存储库中。Mercurial是分布式的。存储库有多个克隆。所有提交都在存储库中。这些提交中的一些、全部、甚至更多可能也在其他存储库中,但所有提交都在克隆中。听起来你们可能在寻找草稿提交和已发布提交之间的区别。我不知道你们所说的4ab195c4是什么意思。。。是存储库中我的提交的第一个祖先。所有列出的提交都在存储库中;如果它们不在存储库中,则无法列出。然而,4ab195c4是一个提交,它是@、当前版本和代码段开头上方的某个不可见版本的祖先,因此您可以使用last祖先ancestorsother找到它,因为正确的other.4ab195c4是一个已提交给master的修订版,因此如果我克隆存储库,我将得到4ab195c4。f085ae95和4431b579仅存在于我的本地存储库中。Mercurial是分布式的。存储库有多个克隆。所有提交都在存储库中。这些提交中的一些、全部、甚至更多可能也在其他存储库中,但所有提交都在克隆中。听起来您可能在寻找草稿提交和已发布提交之间的差异。
hg rebase -s `<commit-you-want-to-rebase>` -d `hg log -r "last(public() and ancestors(.))" --template "{node}"`