阅读(4253) (14)

IDEA管理Mercurial分支和书签

2018-01-02 10:04:38 更新

使用 IntelliJ IDEA,您可以使用命名分支和轻量级分支(书签)。IntelliJ IDEA提供了在分支和书签之间创建、合并和切换的界面,请参阅切换工作目录。您也可以在嵌入式终端中运行命令,请参阅“使用嵌入式本地终端”。

打开分支弹出列表

大多数带有分支和书签的操作都是从分支弹出列表中调用的。

Mercurial分支

该列表显示项目根目录下的所有Mercurial存储库,所有命名的分支以及其中的所有书签。当前的存储库和当前的书签都标有勾号。当前命名分支的名称显示在状态栏的专用hg区域中:

Mercurial分支

要打开“分支”弹出列表,请执行以下操作之一:

  • 在状态栏上,单击专用hg区域中当前命名分支的名称。
    Mercurial分支
  • 在主菜单上,选择:VCS | Mercurial | 分支机构。
  • 在编辑器或版本控制工具窗口的上下文菜单上,选择:Mercurial | 分支机构。

创建命名分支

  1. 在“分支”弹出列表中,单击“新建分支”。
  2. 在打开的“新建分支”对话框中,指定新分支的名称。

新分支立即变为活动状态,其名称显示在hg区域的状态栏中。

创建一个书签

  1. 在“分支”弹出列表中,单击“新建书签”。
  2. 在打开的“新建书签”对话框中,指定要创建的书签的名称。
  3. 指定是否要立即切换到新的书签。
    • 要激活新的书签,从而启用跟踪和更新的轻量级分支书签标识,请将“Inactive”复选框清除。新的书签立即变为活动状态,并在分支弹出列表中用勾号标记其名称。
    • 要创建不活动的书签,即保留在当前轻量级分支(书签)或命名分支中,并稍后切换到新书签,请选中“Inactive”复选框。

关闭一个分支

根据Mercurial工作流程,当您完成功能开发并且不期望有任何进一步的更改时,请关闭相应的分支。在活动分支之间,日志视图等中不显示关闭的分支。要关闭分支,请执行以下操作:

  1. 在分支弹出窗口中,单击关闭分支。在提交更改对话框就会显示出来。
  2. 单击提交并关闭。所有更改将被提交,当前分支将被关闭。

请注意,如果您在“存储库”部分列出了多个存储库,则相应的菜单选项将切换到关闭分支,并且close操作将应用于所有这些分支。

合并命名分支和书签

您可以将命名分支或书签与另一个命名分支、另一个书签或由标签或修订版号标识的特定变更集合并。

  • 将命名分支或书签与另一个命名分支或书签合并意味着合并其头部。合并命名分支和书签可以通过菜单项:VCS |Mercurial | 合并来调用,从“分支”弹出列表中打开“特定于Mercurial的合并”对话框。
    Mercurial分支
  • 合并具有变更集的命名分支或书签意味着合并分支头与指定的变更集。变更集可以通过版本号或标签来标识,请参阅https://www.mercurial-scm.org/wiki/Tag。合并具有特定变更集的命名分支或书签只能通过“VCS |Mercurial | 合并”调用。

有关合并操作本身的定义和Mercurial特定的细节,请参阅https://www.mercurial-scm.org/wiki/Merge。

默认情况下,Mercurial要求在合并之前,当前工作目录应该是干净的,也就是说,它不应该包含任何未提交的更改。否则,合并操作失败,IntelliJ IDEA将显示相应的错误消息。该消息还建议您通过运行hg merge <target branch, bookmark, or changeset> -C 放弃未提交的更改来清除当前的工作目录。

如果您当前的工作副本不干净,则可以按照“Shelving”和“Unshelving Changes”中所述提交更改或搁置它们。

将命名分支或书签与另一个命名分支或书签合并

将命名分支或书签与另一个命名分支或书签合并意味着合并其头部。

  1. 确保当前的工作目录是干净的,也就是说,它不包含任何未提交的更改。如果有的话就进行提交或搁置更改。
  2. 通过执行以下操作之一来调用合并:
    • 在“分支”弹出列表中,单击要合并的分支或书签的名称,然后在弹出菜单中选择“合并”:
    • 在主菜单上选择:VCS | Mercurial | Merge或者在编辑器的上下文菜单上选择:Mercurial | Merge。

      在打开的“Merge”对话框中:

      1. 从存储库下拉列表中选择目标存储库,该列表显示当前项目根目录下可用的所有Mercurial存储库。
      2. 选择“分支”或“书签”选项,然后选择指定的分支或书签以合并当前工作目录。
  3. 解决冲突。只要发生冲突,“文件合并冲突”对话框将打开,并显示冲突文件列表。使用对话框的控件来解决问题:
    • 要保留当前工作目录的版本,请单击“Accept Yours”。
    • 要保留要合并的分支的版本,请单击“Accept Theirs”。
    • 要手动解决冲突,单击“Merge”并使用冲突解决工具,如解决冲突中所述。

    如果在合并过程中没有冲突,则操作默默通过,合并日志显示在版本控制工具窗口中。

将命名分支或书签与变更集合并

使用变更集合并命名分支或书签意味着将分支头与指定的变更集合并。变更集可以通过版本号或标签来标识,请参阅https://www.mercurial-scm.org/wiki/Tag。

  1. 确保当前的工作目录是干净的,也就是说,它不包含任何未提交的更改。提交或搁置更改(如果有的话)。
  2. 在主菜单上选择:VCS | Mercurial | Merge或者在编辑器的上下文菜单上选择:Mercurial | Merge。
  3. 在打开的“Merge”对话框中:
    1. 从存储库下拉列表中选择目标存储库,该列表显示当前项目根目录下可用的所有Mercurial存储库。
    2. 选择标签或修订选项并然后选择标签或指定要合并当前工作目录的哈希值或修订号。要复制哈希,请打开版本控制工具窗口的“日志”选项卡,选择相关的分支和修订,然后在选择的上下文菜单中选择“复制哈希”。
  4. 解决冲突。只要发生冲突,“文件合并冲突”对话框将打开,并显示冲突文件列表。使用对话框的控件来解决问题:
    • 要保留当前工作目录的版本,请单击“Accept Yours”。
    • 要保留要合并的分支的版本,请单击“Accept Theirs”。
    • 要手动解决冲突,单击““Merge””并使用冲突解决工具,如解决冲突中所述。

    如果在合并过程中没有冲突,则操作默默通过,合并日志显示在版本控制工具窗口中。