管理 Mercurial 分支和书签
使用 PyCharm,您可以同时使用 命名分支和 轻量分支(书签)。 PyCharm 提供用于创建、合并以及在分支和书签之间切换的界面,参见 在 Mercurial 工作目录之间切换。 您也可以在 终端仿真器 中运行命令。
有关在分支和书签之间切换的更多信息,请参阅 在 Mercurial 工作目录之间切换。
大多数与分支和书签相关的操作均从 分支 弹出窗口执行。
该弹出窗口显示项目根目录下的所有 Mercurial 仓库、所有命名分支以及其中的所有书签。 当前仓库和当前书签会用勾号标记。 当前命名分支的名称显示在 状态栏 中。

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

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