管理 Mercurial 分支和书签
使用 RubyMine,您可以同时使用 命名分支和 轻量级分支 (书签)。 RubyMine 提供用于创建、合并和切换分支及书签的接口,详情请参阅 在 Mercurial 工作目录之间切换。 您还可以在 终端 中运行命令。
有关在分支和书签之间切换的更多信息,请参见 在 Mercurial 工作目录之间切换。
大多数关于分支和书签的操作都是从 分支 弹出窗口中调用的。
弹出窗口显示项目根目录下的所有 Mercurial 仓库、所有命名分支及其中的所有书签。 当前的存储库和当前的书签标有一个选中标记。 当前命名分支的名称显示在 状态栏。

打开 Branches 弹出窗口
在状态栏中,点击 Mercurial 分支 小部件。

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