Mercurial - 具有自定义目的地的`hg graft`?

Mercurial - `hg graft` with custom destination?

有没有办法将提交移植到与当前版本不同其他的地方?

文档听起来好像没有:

hg graft [OPTION]... [-r REV]... REV...

copy commits from a different location

而且我没有看到任何可以传递给 hg graft 的参数。我很惊讶 hg rebase 允许使用 -d 标志,但 hg graft 不允许。就像有时我想将一个分支变基到当前版本以外的某个地方,有时我想将一个分支移植到当前版本以外的某个地方。

您可以使用 rebase 扩展来实现这一点。 hg rebase -r <rev> -d <dest> --keep 在保留旧修订版的同时将其变基。

基本答案是"no",但还是可以得到想要的效果

graft 的帮助文本说“将更改从其他分支复制到当前分支 " 这意味着如果您首先更新到目标变更集,您可以获得您想要的结果。

大概你想使用 graft 来制作一个实际的副本,而 rebase 会 "move" 变更集。所以这将得到那个结果,尽管它需要几个步骤。

总结一下:

hg up <destination revision>
hg graft <source revision>
hg up tip