如何将默认分支上的错误修正修复为mercurial中的命名分支? 我最近开始研究一个新功能,所以我认为我会在一个分支中完成这项工作(之前我没有真正做过),所以我可以将更改保留在主要的默认分支之外,直到我完成它们并且该功能已准备好部署。我的想法是我可以更新到默认分支并根据需要应用任何错误修正。
现在我想把bug修复到我的命名分支。提示(rev 739)有我希望包含在BoardSummary分支中的更改。我知道我可以合并,但我不想将BoardSummary更改带到默认分支。
我查看了mercurial: apply a bugfix change from stable named branch to dev branch答案,但这对我没有意义。
编辑:我用它来“然后你发现变更集2引入了一个错误”,在我的情况下我回到732修复了错误并提交了(默认情况下)。我的想法是在我分支之前修复已经到位。但是现在如何在不将两个分支合并在一起的情况下将其修复到738?看起来这个bug实际上是在739中修复的 - 所以还没有在BoardSummary分支中。这似乎是第二棵树在答案中显示的内容,但第三张图解释为“你会改为做” - 我不明白那一点
答案 0 :(得分:7)
显然,默认分支只包含 BoardSummary 分支中不存在的一个变更集。您应该将默认合并到 BoardSummary 中,而不是相反。这样, BoardSummary 将有修复, BoardSummary 中没有一个将在默认中。
总结:
$ hg up BoardSummary
$ hg merge default
$ hg commit -m "Merge the fix for #247"
可以使用多种分支。最常见的是:
这里的主要想法是从稳定到默认,从默认到功能合并始终是安全的。这意味着就变更集而言,任何稳定分支都是默认的子集,而默认是功能分支的子集。
例如,您正在功能分支 new-dal (主要功能)中重新设计数据访问级别。与此同时,您在默认(次要功能)中添加了几个新报告,并找到并修复了 1.0-stable 中的错误。好吧,只需合并从最旧到最新的分支( 1.0-stable - > 默认 - > new-dal ),就是这样。
这在Mercurial wiki上得到了很好的解释:Standard Branching: Release branches。
在您的情况下, BoardSummary 显然是一个功能分支,因此您可以毫不犹豫地将默认值合并到其中。只有在您准备将新功能集成到默认功能时才能完成相反的操作。
答案 1 :(得分:0)
首先,您应该从历史记录中回滚/删除提交739(这是您的修复)。然后你在r732上提交修复程序。这将创造一个新的头,应该是新的r739。您的历史记录应如下所示:
r329
|
--r232-----default branch
\
\
feature branch
现在将新头(r329)合并到默认分支和功能分支中。现在历史应该看起来像链接答案中的最后一棵树。