繁体   English   中英

如何在mercurial中“进一步拆分”?

[英]How can I “split the branch further” in mercurial?

不可否认,这是一个误导性的标题,但我不知道如何把它变得更好。

因此,在开设分支之前,我错误地推动了所有项目特定的更改。 这样,有一些变更集位于默认分支中,不属于那里。 他们应该在我新开的分店。

我是否必须先退出所有变更集,然后再将它们推送到正确的分支机构? 这甚至有用吗?

谢谢您的帮助。

如果不采用EditingHistory(通常会再次建议,并且肯定与多变的“不可变历史”设计目标相对立),这些变化将永远存在于您的历史中。 但是,您可以在“提示”修订版中撤消它们,然后在分布在多个分支上的多个后续更改集中将它们涓涓细流。

让我们假设这是您当前的历史:

[R0] -> [R1] -> [R2] -> [R3]

修订版R2和R3在默认分支中有你想要的东西,你想要的东西在不同的分支中。 您可以创建一个新版本R4,它可以撤消R2和R3。 这可以使用你建议的退出来完成,或者因为你正在做多个变更集,也许更容易使用'revert'。

hg update tip ; hg revert --all -r R2 ; hg commit -m 'undid changes R2 and R3'

那么你的历史将如下所示:

[R0] -> [R1] -> [R2] -> [R3] -> [R4]

然后你可以将你的工作分成你希望你最初完成的变更集,产生这样的历史记录:

[R0] -> [R1] -> [R2] -> [R3] -> [R4] -> [R5] -> [R7]
                                   \
                                    --> [R6] -> [R8]

R6和R8可以位于名为“default”的分支上,也可以位于不同的命名分支上。 无论哪种方式,你可以通过以下方式将R0推到R5和R7:

hg push -r R7

这是有效的,因为推动修正及其所有祖先 - 但R6和R8不是R7的祖先,所以无论它们在哪个分支上它们都不会被推动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM