Mercurial:用几个头修复一个存储库

时间:2013-01-04 22:41:34

标签: mercurial

我的存储库只有两个分支:默认和稳定。我在稳定的分支中弄得一团糟,但我不知道如何修复它。

Current Repository

默认分支用于新功能

92 is the revision created by the maven-release-plugin.
93 commit on stable
94 merge stable into default
95 to 98 commit on default
99 merge default into stable
100 to 103 commit on stable
104 try to fix the mess with a hg merge -r 98

对于default,我希望头部为98。为了稳定,我想回到单头,包括提交9498

1 个答案:

答案 0 :(得分:1)

Default的头应该是98;不是吗?运行hg heads default以获取default分支上的变更集列表。从你的图表中,这是98,只有98。

对于stable,听起来好像你要hg merge提交103和104.为此,请更新到其中一个(hg update 103),然后合并另一个(hg merge 104 })。

你仍然需要处理提交93.你是否也想在stable中提出它?或者你想不要有它的影响?如果您想在stable中使用它,只需将其合并。

如果您根本不想在stable中使用它的效果,那么您需要做的事情会因发生的事情而有所不同。它只是在您的本地计算机上,还是已经将它推到了上游?如果它只在您的本地计算机上运行,​​则运行hg strip 93会将其从您的存储库中删除,并且不会被远程推送。为此,您必须启用mq extension

如果您已向上游推93,则无法将其剥离。但是,您可以做的是通过更新到更改集93,然后运行hg backout 93来进行撤消93的影响的提交。然后,您可以将新提交合并到stable分支,它将,就像您从未提交过93. 93将在您的历史记录中,但其代码更改已消失。< / p>