HG:如何将一些(但不是全部)更改推送到'stable'分支?



假设我在默认中进行新功能开发,或者为网站项目的功能创建一个全新的分支。当需要将该功能推出到实时网站时,我想将其移动到live分支,然后将其hg archive转移到我的apache目录中。

在整个过程中,我希望绝对确保不会将其他尚未准备好发布到live分支的不相关更改推送。

  1. 这是个好主意吗?还是我应该做一些完全不同的事情?

  2. 如果代码处于默认,我如何只推送我需要的一件事,而不是所有东西到生活?如果我只推送最新的变更集,那么发送这些文件的最新版本是否足够智能,还是只发送变更集?

  3. 如果代码在一个全新的分支中,我是否将整个分支合并到live中?如何将这些更改返回到我的默认分支,以便在那里也能看到它们?

  4. 我正在阅读Mercurial Kick Start指南的"基于任务的管理"部分,其中提到将默认合并到您的分支中。我觉得这很困惑,想知道你为什么会这么做。

谢谢你们能提供的任何帮助。

[编辑]我正在使用TortoiseHG BTW[/edit]

HG现在有阶段。将变更集的一个阶段更改为secret,当您使用push时,它将不会被推送。您可以使用TortoiseHG GUI来完成此操作。

除此之外,请注意,仅仅推送或拉取某个东西并不会自动更改工作目录中的任何文件。它只提供一些额外的变更集。只有使用update才能真正更改工作目录中的任何文件(除非您将hg配置为自动更新)。

在您链接的示例中,默认分支中有一个错误修复。Bob也想在他的分支中进行此修复,所以他将默认分支与他的分支合并。这只是一个示例,用来了解分支是如何工作的。您不必以完全相同的方式使用它。如果你刚刚开始Mercurial冒险,那么你最好只使用一个分支,直到你有充分的理由使用更多。

例如:3个开发人员在同一个项目上工作,而他们都只使用一个分支(默认)。其中1名开发人员希望对代码进行重大重构。他想要提交几个非常不稳定的变更集(许多变更集"正在工作中")。在默认分支中这样做可能会让其他开发人员感到不安。这是创建分支的一个很好的理由。在他的版本足够稳定之后,他将把他的分支合并为默认分支。当他在自己的分支中进行开发时,他想了解其他开发人员的最新情况,所以他经常将默认值合并到自己的分支。在单独的分支中停留太久可能会导致合并困难。幸运的是,HG中的合并非常快,所以经常合并。

最新更新