简单的问题:假设我有如下本地提交:
master -> a -> b -> c
Run Code Online (Sandbox Code Playgroud)
我想合并a和b。hg 命令是什么?我试过
hg up b
hg fold -r a
Run Code Online (Sandbox Code Playgroud)
收到错误消息:abort: cannot fold chain not ending with a head or with branching
我试过
hg up b
hg amend
Run Code Online (Sandbox Code Playgroud)
这创建了一个像这样的堆栈
master -> a.preamend -> b -> c
\-> a
Run Code Online (Sandbox Code Playgroud)
这不允许我继续 c。最后,我尝试了
hg up b
hg histedit a
abort: can only histedit a changeset together with all its descendants
Run Code Online (Sandbox Code Playgroud)
没有运气。我想要的是这样的:
hg up b
hg *merge* -r a
Run Code Online (Sandbox Code Playgroud)
回报
master -> b -> c
Run Code Online (Sandbox Code Playgroud)
提前致谢!
关于错误信息
abort: cannot fold chain not ending with a head or with branching当您的存储库中不允许新的不稳定更改时,会出现此错误消息。
不稳定的变更是那些其子项未过时的过时变更。您应该查找并添加到experimental.evolution其中。hg config"unstable"
关于折叠变更集
有两种方法可以使用 来折叠堆栈中间的提交fold。
使用--exact选项:可以做hg fold -r a -r b --exact。在此情况下,工作目录的父目录是什么并不重要。您必须提及要折叠的修订。
b使用更新到要修剪的最后一个子项,在本例中为hg update -r b。然后跑hg fold -r a。传递给折叠的修订必须是要折叠的链的初始修订。
你有过
master -> a -> b -> c
你折叠a了b,它们变得过时了,因为有一个没有过时的b孩子,它是一个不稳定的变更集。c
所以你所做的并没有错,只是根据你的配置不允许。
小智 0
如果您想将两次提交的更改压缩为一次提交,则可以使用 hg rebase 命令来压缩更改。
$ hg rebase -ra::b -d master --collapse
这会将 a 和 b 提交的更改压缩为一个提交
有关更多信息,请参阅:RebaseExtension
| 归档时间: |
|
| 查看次数: |
7881 次 |
| 最近记录: |