25

我听说在 Mercurial 存储库中创建分支的唯一方法是在工作副本中进行更改,然后将它们提交到新分支。

在 Subversion 中,我可以创建一个分支而无需进行更改(通过复制trunk到 下的路径tags) - 是否也可以在 Mercurial 中执行此操作?

我目前只见过 TortoiseHg,所以这可能只能通过命令行工具完成,我不知道。

我的工作流程是:

  • 创建功能分支。
  • 在该功能分支中做一些工作。
  • 创建一个发布候选分支。
  • 合并功能以发布候选分支。
  • 部署、测试、修复部署、测试、修复候选发布分支。
  • 将发布候选分支合并到主干。

提前谢谢了。

4

3 回答 3

34

这取决于你所说的分支是什么意思。

可以通过给它一个名称然后提交来创建命名分支,它最终将作为历史中的一个新变更集,但您不需要显式更改工作文件夹中的任何文件以允许提交.

hg branch NEWNAME
hg commit -m "Created branch NEWNAME"

您也可以使用 TortoiseHg 对话框执行此操作。

但是,如果您想创建另一个未命名的分支,即。只是另一个头,那么是的,你需要改变一些东西。真的,你为什么要创建一个没有任何更改的空变更集?只是为了表示“当我有一些变化时,我会在这里放置我的分支”?

于 2011-01-25T09:56:12.787 回答
6

您可能想查看书签扩展(即将成为核心 Mercurial 的一部分)。
如果您熟悉分支在 git 中的工作方式,那几乎是一样的。

就像 git 中的分支一样,您可以在不提交任何内容的情况下创建书签。

$ hg bookmark my-feature
于 2011-01-25T10:34:42.260 回答
1

创建分支后不要忘记推送它:

hg push --new-branch
于 2016-06-10T08:50:34.817 回答