【问题标题】:How to push bug fixes with Mercurial如何使用 Mercurial 推送错误修复
【发布时间】:2012-10-17 16:51:44
【问题描述】:

好的,我尝试过寻找具体的东西,但没有找到任何东西。

如果我正在处理我的默认分支中的新功能并且以前的工作中出现错误报告,那么处理修复和推送的最佳方法是什么?我正在尝试书签,但后来我看到它也推动了祖先。这就是我正在做的......

  • 为未来的变更集处理默认分支(修订版 76)
  • 在编码过程中切换到错误修复
  • hg 书签主(当前工作)
  • hg bookmark -r 76 fix1(用于错误工作)
  • hg 更新修复1
  • 现在破解 77 版
  • hg commit -m '错误修复'
  • hg 更新主
  • hg push -B fix1

那时我注意到 76 也上升了。

由于我不希望出现新的未完成工作,只希望修复错误,那么解决此问题的最佳方法是什么?克隆虫子?

谢谢。

【问题讨论】:

  • 使用分支...或克隆...并清理您的工作流程描述 - 您在“默认分支中的”上工作,是吗?并且必须在编码过程中切换到错误修复,是吗?

标签: mercurial push bookmarks


【解决方案1】:

您将 fix1 书签设置在与主书签相同的变更集上,而不是首先更新到修复错误的所需变更集。并且在推送时,您可以使用 -r 参数定义要推送的修订。这只会推送指定修订版的分支和祖先(在这种情况下是带有您的修复的分支)。

尝试类似:

  • 为未来的变更集处理默认分支(修订版 76)
  • 在编码过程中切换到错误修复。错误在变更集 50 中
  • hg bookmark main
  • hg update -r 50
  • hg bookmark fix1
  • hack hack 现在 rev 77 以修复错误
  • hg commit -m 'bug fix part 1'
  • hack hack 现在 rev 78 以修复错误
  • hg commit -m 'bug fix part 2'
  • hg push -rfix1
  • hg update main
  • 再次将您的错误修正带入主代码行
  • hg merge fix1
  • 如果需要,请删除书签
  • hg bookmark -d fix1
  • 再次开发新功能

【讨论】:

  • 感谢您的澄清!帮助。
  • 这被称为“daggy”修复,因为它利用了变更集彼此之间的 DAG(有向无环图)关系。 mercurial.selenic.com/wiki/DaggyFixes 的更多信息——此外,您不必找到引入错误的确切变更集。您可以在您知道存在错误的变更集之上实施修复,例如v1.0.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多