管理 Mercurial 分支与书签
通过 WebStorm,您可以使用 具名分支 和 轻量分支(书签)。 WebStorm 提供用于创建、合并及在分支与书签之间切换的界面,详见 在 Mercurial 工作目录之间切换。 您也可以在 终端 中运行命令。
有关在分支与书签之间切换的更多信息,请参阅 在 Mercurial 工作目录之间切换。
大多数与分支和书签相关的操作可通过 分支 弹窗进行。
该弹窗显示了项目根目录下的所有 Mercurial 仓库、所有具名分支及其包含的所有书签。 当前仓库和当前书签会以复选标记标识。 当前具名分支的名称显示在 状态栏 中。

打开 Branches 弹窗
在状态栏中,点击 Mercurial 分支 组件。

在主菜单中,转到 。
在编辑器或 Mercurial 工具窗口的上下文菜单中选择 。
分支
创建具名分支
新建分支会立即激活,其名称显示在 Mercurial 分支 组件的 状态 栏上。
点击状态栏中的 Mercurial 分支 组件以打开 分支 弹窗,然后点击 新建分支。
在打开的 创建新分支 对话框中,指定新分支的名称。
关闭分支
根据 Mercurial 工作流 ,当完成某项功能的开发且预计不再修改时,应关闭相应分支。 已关闭的分支不会显示在活动分支中、 日志 视图中等位置。 要关闭分支,请执行以下操作:
点击状态栏中的 Mercurial 分支 组件以打开 分支 弹窗并点击 关闭分支。
在 分支 弹窗中点击 关闭分支。 将显示 提交更改对话框。
点击 提交并关闭。 所有更改将被提交,且当前分支将被关闭。
请注意,如果在 版本库 部分中列出了多个仓库,菜单项会切换为 关闭分支 ,并将对所有仓库执行 close 操作。
书签
创建书签
点击状态栏中的 Mercurial 分支 组件以打开 分支 弹窗并点击 新建书签。
在打开的 新建书签 对话框中,命名新书签。
选择 非活动 选项以保留在当前轻量分支(书签)或具名分支中,并稍后切换至新书签。
取消选中该选项以激活新书签,并启用对轻量分支的跟踪与更新。
合并具名分支与书签
您可以将具名分支或书签与其他具名分支、书签或通过标签或修订号标识的特定变更集合并。
有关 merge 操作的定义及 Mercurial 特有详情,请参阅 https://www.mercurial-scm.org/wiki/Merge。
默认情况下, Mercurial 要求在合并前当前工作目录必须是 干净 的,即不包含任何未提交的更改。 否则合并操作将失败,WebStorm 会显示相应的错误消息。 该消息还建议通过运行 hg merge <target branch, bookmark, or changeset> -C 清理当前工作目录,以丢弃未提交的更改。
如果当前工作副本不干净,请按照 暂存或保存更改 中所述提交更改或暂存它们。
将具名分支或书签与其他分支或书签合并
将具名分支或书签与其他具名分支或书签合并意味着与其 head 合并。
请确保当前工作目录为 干净 ,即不包含任何未提交的更改。 如有更改,请提交或暂存它们。
在主菜单中,转到 。
在打开的 合并 对话框中,从 版本库 列表中选择目标仓库,该列表显示当前项目根目录下可用的所有 Mercurial 仓库。
选择 分支 或 书签 选项,并选择要与当前工作目录合并的具名分支或书签。
为防止更新期间因当前工作目录不干净而导致失败,选中 覆盖本地修改的文件(无备份) 复选框。 未提交的更改将被丢弃。
解决冲突。 一旦发生冲突, 冲突 对话框将打开,显示冲突文件列表。 请使用该对话框中的控件解决问题:
若要保留当前工作目录的版本,请单击 接受您的版本。
若要保留正在合并的分支的版本,请单击 接受对方版本。
要手动解决冲突,请单击 合并 ,并按照 解决 Git 冲突 中的描述使用 冲突解决工具。
如果在合并期间未发生冲突,该操作将自动完成,合并日志将显示在 Mercurial 工具窗口中。
将具名分支或书签与变更集合并
将命名分支或书签与变更集合并意味着将该分支的 head 与指定的变更集合并。 变更集可以通过修订号或 tag 进行标识。
请确保当前工作目录处于 干净 状态,即不包含任何未提交的更改。 请提交或搁置更改(如有)。
在主菜单中,转到 。
在打开的 合并 对话框中,从 版本库 列表中选择目标版本库,该列表显示当前项目根目录下可用的所有 Mercurial 版本库。
选择 标记 或 修订版本 选项,并选择要合并到当前工作目录的 tag,或指定哈希值或修订号。 要复制哈希值,请打开 日志 选项卡,在 Mercurial 工具窗口 Alt+9 中选择相关分支和修订,然后在上下文菜单中选择 复制哈希值。
解决冲突。 一旦发生冲突, 冲突 对话框将打开,显示冲突文件列表。 请使用该对话框中的控件解决问题:
若要保留当前工作目录的版本,请单击 接受您的版本。
若要保留正在合并的分支的版本,请单击 接受对方版本。
要手动解决冲突,请单击 合并 ,并按照 解决 Git 冲突 中的描述使用 冲突解决工具。
如果在合并期间未发生冲突,该操作将自动完成,合并日志将显示在 Mercurial 工具窗口中。