任务和问题跟踪系统指南


简介

本指南介绍 Plastic SCM 如何与各种控制跟踪工具(Bugzilla、Mantis、Trac、Jira、Axosoft、VersionOne、FogBugz、Rally、Polarion 和 codeBeamer)进行集成。

在本指南中,您还将了解如何编写您自己的 Plastic SCM 自定义扩展

一旦配置了问题跟踪系统,用户将能够无缝地使用扩展和 Plastic SCM。这意味着用户将能够通过 Plastic GUI 查看相关的任务信息。

Plastic SCM 扩展允许两种不同的工作模式:

  • 分支任务 - 此模式将问题跟踪系统中的一项任务链接到一个 Plastic 分支,并允许在问题跟踪工具上浏览相关问题(其中显示了完整信息)。
  • 变更集任务 - 此模式将一个或多个任务链接到一个或多个 Plastic 变更集,相关任务的信息可从 Plastic 变更集视图中获得。

Bugzilla 集成

本节介绍使用 Plastic SCM Bugzilla 集成的步骤。

在 Windows、Linux 和 macOS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

Bugzilla - 配置

在本章中,您将学习如何在服务器端客户端配置 Bugzilla 集成。

Bugzilla 服务器配置

要设置 Bugzilla 扩展功能,请将脚本文件 plastic.cgi(包含在 plasticscm_install_path/client/extensions/bugzilla 中)复制到 Bugzilla 安装文件夹。

根据服务器的操作系统,脚本文件的第一行可能需要更改:

  • Linux:
    #!/usr/bin/perl -wT
  • Windows:
    #!c:\perl\bin\perl.exe -wT

客户端配置

了解如何在 WindowsLinux 或 macOS 系统中配置 Bugzilla 集成。

客户端配置 - Windows

按照以下步骤在 Windows 机器的 Plastic SCM 客户端上配置 Bugzilla 扩展:

  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。
  2. 在新窗口中,单击问题跟踪程序选项卡。
  3. 单击绑定到此问题跟踪系统单选按钮。
  4. 选择 Bugzilla 跟踪系统。
  5. 现在,选择要将绑定应用于的存储库:
    • 如果要使用全局扩展配置,则选择 plastic-global-config 存储库。
    • 如果要使用问题跟踪程序绑定到所有存储库,请选择 Repositories
    • 如果要使用 Bugzilla 绑定到特定存储库,请选择该存储库。
    问题跟踪配置:Bugzilla
  6. 默认情况下会激活将问题绑定到 Plastic 分支选项以使用分支任务模式。
    要使用变更集任务模式,请选择将问题绑定到 Plastic 变更集选项。
  7. 现在,必须相应地配置 Bugzilla 参数(Bugzilla 服务器所在的 URL 地址、凭据、分支前缀等)。
    了解有关 Bugzilla 配置参数的更多信息。
客户端配置 - Linux 和 macOS 系统

可使用以下方法之一,在 Linux 或 macOS 机器的 Plastic SCM 客户端上配置 Bugzilla 扩展:

  • 在服务器中设置全局扩展配置。这样,默认情况下所有 Plastic 客户端都具有相同的 Bugzilla 设置。
  • 设置本地 Bugzilla 配置。为此,请执行以下操作:
    1. $HOME/.plastic4 下创建结构 issuetrackers/server_port/repository,其中 repository 是以下值之一:
      • 要链接到问题跟踪程序的存储库的名称。
      • allrepos,这意味着您的所有存储库都将链接到问题跟踪程序。
    2. bugzilla.conf 示例配置文件复制到新创建的路径中。
      可在以下位置找到此文件:
      • Window 或 Linux:plasticscm_install_path/client/extensions/config_samples
      • macOS:/Applications/PlasticSCM.app/Contents/IssueTrackerConfigSamples

      然后,您将获得类似以下的内容:

      • /home/pablo/.plastic4/issuetrackers/localhost_8087/info/bugzilla.conf
      • /home/pablo/.plastic4/issuetrackers/localhost_8087/allrepos/bugzilla.conf

    3. 编辑 bugzilla.conf 文件:
      1. 编辑 WorkingMode 参数以分配以下值之一:TaskOnBranchTaskOnChangeset
      2. 相应地配置其余的 Bugzilla 扩展参数(Bugzilla 服务器所在的 URL 地址、凭据、分支前缀等)。
        了解有关 Bugzilla 配置参数的更多信息。
    4. 编辑 client.conf 文件以添加以下键:
      <Extensions>
          <Extension AssemblyFile="plasticscm_install_path/client/extensions/bugzilla/bugzillaextension.dll" />
      </Extensions>
      
客户端配置 - 参数
  • Bugzilla Base URL:指定安装并运行 Bugzilla 服务器的 URL。
  • User name:如果需要,输入用户名。
  • Branch prefix:如果要使用分支任务模式,建议指定此参数(但不是强制性的)。此分支前缀将用于把 Plastic 分支绑定到 Bugzilla 任务。
    例如,如果输入 scm 前缀,则名称以前缀 scm 开头的所有分支都将链接到 Bugzilla 问题。例如,名为 scm012 的 Plastic 分支将与 Bugzilla task #12 相关联。

Bugzilla - 特征

分支任务工作模式

通过使用这种工作模式,每个 Bugzilla 任务在创建新任务时都关联到一个 Plastic 分支。新分支的分支名称必须与配置的扩展前缀(如果已设置)以及 Bugzilla 上的数字标识符相匹配。

通过单击分支视图中的显示扩展信息按钮(显示扩展信息),与分支相关的信息将显示在 Plastic GUI 的右侧面板上。通过选择一个分支,在 Plastic SCM 中将显示 Bugzilla 任务信息:编号或标识符、任务所有者、状态、标题和描述。

分支的扩展信息

通过双击任务窗格或单击在浏览器中打开问题按钮(在浏览器中打开问题),系统将打开一个新的浏览器窗口,并显示 Bugzilla 任务的完整信息:

Bugzilla Web 界面示例

强制要求任务存在

可设置 Plastic SCM 存储库,以便根据 Bugzilla 检查与任务关联的编号分支。仅当在 Bugzilla 中定义了 bug 号时,才允许该工作分支。此检查是对分支创建操作执行的,只适用于子分支。

为了在存储库上设置“分支创建检查”,请在所需的存储库上创建一个名为 plastic-enforce-task-branch 的属性。必须使用以下方法之一创建此属性:

  • 使用命令行运行以下命令: cm attribute create plastic-enforce-task-branch
  • 使用 Plastic SCM GUI 中的属性视图:

    Plastic 强制要求 Bugzilla 任务存在

创建此属性后,每次要在定义此属性的存储库上创建子分支时,扩展都会检查新分支的名称。如果该名称以任务前缀开头,则会选择其中包含的编号并询问 Bugzilla 是否有匹配的 bug 号。否则会打印错误并取消操作:

尝试创建一个没有对应任务的分支

变更集任务工作模式

要将 Plastic SCM 配置为在变更集任务工作模式下运行,用户必须配置 Bugzilla 扩展并选择将问题绑定到 Plastic 变更集选项,如前面客户端部分所述。

工作流程将如下所述:

  1. 在 Bugzilla 中创建问题。当开发者开始处理一个问题时,该问题就是未完成状态。
  2. 对代码进行更改,从而签出在 Plastic 中出现的项。
  3. 当用户决定签入更改时,Plastic SCM 将显示一个新对话框,在其中可以将 Bugzilla 任务与此新变更集链接起来:
  4. 用户可以通过以下选项之一来链接变更集和任务:
    • 添加新问题 - 单击添加新问题按钮打开一个新对话框。现在,用户可以选择一项或多项任务来链接到变更集:
    • 输入注释井号标签 - 在签入注释文本框中输入注释,该注释应以“#”字符开头,后跟问题序号(还可以选择后跟冒号)。这将在相关问题中记录签入信息。例如,#9: Edited the user interface

一旦变更集链接到 Bugzilla 中的任务,此信息就可以显示在 Plastic SCM 的变更集视图中。当扩展信息面板可见时(显示扩展信息),如果单击某个变更集,则 Plastic 将显示相关的 Bugzilla 任务:

在“变更集任务”模式下工作时的变更集视图以及详细信息

用户还可以从 Bugzilla 扩展窗格中添加新任务或删除以前的任务。此外,通过双击与某个变更集关联的每个任务或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个新的 Web 浏览器窗口将会打开并显示所选的 Bugzilla 任务。每当用户在 Bugzilla 中修改任务时,通过按 Bugzilla 扩展窗格上的刷新按钮即可在 Plastic GUI 上更新相应的新数据。


Mantis 集成

本节介绍使用 Plastic SCM Mantis 集成的步骤。此外还介绍了它的优点。

此扩展与 Mantis 0.19.4、1.0.0、1.0.8 及更高版本兼容。

在 Windows、Linux 和 macOS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

Mantis - 配置

了解如何在服务器端客户端配置 Mantis 集成。

Mantis 服务器配置

要设置 Mantis 扩展功能,请将脚本文件 plastic.php(包含在 plasticscm_install_path/client/extensions/mantis 中)复制到 Mantis 安装文件夹。

客户端配置

了解如何在 WindowsLinux 或 macOS 系统中配置 Mantis 集成。

客户端配置 - Windows

按照以下步骤在 Windows 机器的 Plastic SCM 客户端上配置 Mantis 扩展:

  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。
  2. 在新窗口中,单击问题跟踪程序选项卡。
  3. 单击绑定到此问题跟踪系统单选按钮。
  4. 选择 Mantis 跟踪系统。
  5. 现在,选择要将绑定应用于的存储库:
    • 如果要使用全局扩展配置,则选择 plastic-global-config 存储库。
    • 如果要使用问题跟踪程序绑定到所有存储库,请选择 Repositories
    • 如果要使用 Mantis 绑定到特定存储库,请选择该存储库。
    问题跟踪配置:Mantis
  6. 默认情况下会激活将问题绑定到 Plastic 分支选项以使用分支任务模式。
    要使用变更集任务模式,请选择将问题绑定到 Plastic 变更集单选按钮。
  7. 现在,必须相应地配置 Mantis 参数(Mantis 服务器所在的 URL 地址、凭据、分支前缀等)。
    了解有关 Mantis 配置参数的更多信息。
客户端配置 - Linux 和 macOS 系统

可使用以下方法之一,在 Linux 或 macOS 机器的 Plastic SCM 客户端上配置 Mantis 扩展:

  • 在服务器中设置全局扩展配置。这样,默认情况下所有 Plastic 客户端都具有相同的 Mantis 设置。
  • 设置本地 Mantis 配置。为此,请执行以下操作:
    1. $HOME/.plastic4 下创建结构 issuetrackers/server_port/repository,其中 repository 是以下值之一:
      • 要链接到问题跟踪程序的存储库的名称。
      • allrepos,这意味着您的所有存储库都将链接到问题跟踪程序。
    2. mantis.conf 示例配置文件复制到新创建的路径中。
      可在以下位置找到此文件:
      • Window 或 Linux:plasticscm_install_path/client/extensions/config_samples
      • macOS:/Applications/PlasticSCM.app/Contents/IssueTrackerConfigSamples

      然后,您将获得类似以下的内容:

      • /home/pablo/.plastic4/issuetrackers/localhost_8087/info/mantis.conf
      • /home/pablo/.plastic4/issuetrackers/localhost_8087/allrepos/mantis.conf

    3. 编辑 mantis.conf 文件:
      1. 编辑 WorkingMode 参数以分配以下值之一:TaskOnBranchTaskOnChangeset
      2. 相应地配置其余的 Mantis 扩展参数(Mantis 服务器所在的 URL 地址、凭据、分支前缀等)。
        了解有关 Mantis 配置参数的更多信息。
    4. 编辑 client.conf 文件以添加以下键:
      <Extensions>
          <Extension AssemblyFile="plasticscm_install_path/client/extensions/mantis/mantisextension.dll" />
      </Extensions>
      
客户端配置 - 参数
  • Mantis Base URL:指定安装并运行 Mantis 服务器的 URL。
  • User name:此字段中必须填写有效的 Mantis 用户信息。
  • Branch prefix:如果要使用分支任务模式,建议指定此参数(但不是强制性的)。此分支前缀将用于把 Plastic 分支绑定到 Mantis 任务。
    例如,如果输入 scm 前缀,则名称以前缀 scm 开头的所有分支都将链接到 Mantis 问题。例如,名为 scm022 的 Plastic 分支将与 Mantis task #22 相关联。
  • Encoding:默认值是 UTF-8,适用于大多数语言。如果需要更改编码,请编辑此值。

Mantis - 特征

分支任务工作模式

默认配置的工作模式是分支任务,非常适合与“任务分支”模式搭配使用。在这种工作模式下会为每个要完成的任务创建一个新分支。

像往常一样,第一步是在 Mantis 中创建问题,这一步骤通常由项目经理完成,具体做法是单击“报告问题”选项,随后将打开一个对话框,其中包含要处理的新问题的信息,这些信息有标题、描述、严重性等。

在 Mantis 用户界面上创建新问题

创建问题后,Mantis 会为其分配一个编号。在本例中,Mantis 为任务分配了编号 4,如下图所示。用户可以从问题列表中选择一个问题(这些问题会根据状态显示为不同的颜色)并更改其状态,因此问题 4 的状态从 new 变为 assigned

Mantis 问题列表

下一步是分配到任务的开发者必须创建一个新分支。此操作很简单,只需右键单击父分支并选择创建子分支选项,如下图所示:

在 Plastic SCM 中创建一个新分支

为了将新分支链接到 Mantis 中的问题,开发者必须为分支提供相同的 Mantis 编号(在本例中为 4)并在前面添加分支前缀:

在 Plastic SCM 中创建一个新分支

现在,用户可以在分支视图中的扩展信息面板(显示扩展信息)上查看与特定分支链接的问题的信息。

在“分支任务”模式下工作时的 Plastic SCM 分支扩展信息

如果用户单击在浏览器中打开问题按钮(在浏览器中打开问题)或双击 Mantis 任务,系统将打开包含相关分支问题的浏览器窗口。当用户更改问题的状态或任何其他字段时,通过刷新 Mantis 扩展即可显示新的信息。

变更集任务工作模式

要将 Plastic SCM 配置为在变更集任务工作模式下运行,用户必须配置 Mantis 扩展并选择将问题绑定到 Plastic 变更集选项,如前面客户端部分所述。

工作流程将如下所述:

  1. 在 Mantis 中创建问题。当开发者开始处理一个问题时,该问题就是未完成状态。
  2. 对代码进行更改,从而签出在 Plastic 中出现的项。
  3. 当用户决定签入更改时,Plastic SCM 将显示一个新对话框,在其中可以将 Mantis 任务与此新变更集链接起来:
  4. 用户可以通过以下选项之一来链接变更集和任务:
    • 添加新问题 - 单击添加新问题按钮打开一个新对话框。现在,用户可以选择一项或多项任务或者缺陷来链接到变更集:
    • 输入注释井号标签 - 在签入注释文本框中输入注释,该注释应以“#”字符开头,后跟问题序号(还可以选择后跟冒号)。这将在相关问题中记录签入信息。例如,#5: Edited const

一旦变更集链接到 Mantis 中的问题或任务,此信息就可以显示在 Plastic SCM 的变更集视图中。当扩展信息面板可见时(显示扩展信息),如果单击某个变更集,则 Plastic 将显示相关的 Mantis 任务:

“变更集任务”工作模式下的变更集扩展信息

用户还可以从 Mantis 扩展窗格中添加新任务或删除以前的任务。此外,通过双击与某个变更集关联的每个任务或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个新的 Web 浏览器窗口将会打开并显示所选的 Mantis 任务。每当用户在 Mantis 中修改任务时,通过按 Mantis 扩展窗格上的刷新按钮即可在 Plastic GUI 上更新相应的新数据。


Trac 集成

本节介绍使用 Plastic SCM Trac 集成的步骤。此外还介绍了它的优点。

此扩展与 Trac 0.10 及以上版本兼容。

在 Windows、Linux 和 macOS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

Trac - 配置

在本章中,您将学习如何在服务器端客户端配置 Trac 集成。

Trac 服务器配置

要设置 Trac 扩展功能,必须将 XMLRPC 插件安装到 Trac 服务器中。此链接提供了有关如何下载、安装和验证是否已正确进行设置的信息。

使用 Trac 管理工具,为需要使用扩展的用户启用 XML_RPC 权限。如果此权限分配给“anonymous”用户,则每个用户都可以使用。

Trac 服务器配置

使用 Trac 扩展时,必须考虑几个服务器配置功能:

  • 如果使用的身份验证方法是基本身份验证(启动 tracd 时使用选项 --basic-auth),即基于用户/密码的身份验证模式,则用于访问 XMLRPC 服务的 URL 格式如下:http://{trac_server}/{trac_project_name}/login/xmlrpc
  • 如果 Trac 服务器配置了任何其他身份验证方法,Plastic SCM 扩展将无法进行用户身份验证。在这种情况下,用户 anonymous 必须启用 XML-RPC 权限,并且用于访问相关服务的 URL 将采用以下格式:http://{trac_server}/{trac_project_name}/xmlrpc
    无需向 Plastic SCM Trac 扩展提供用户/密码身份验证信息。

客户端配置

了解如何在 WindowsLinux 或 macOS 系统中配置 Trac 集成。

客户端配置 - Windows

按照以下步骤在 Windows 机器的 Plastic SCM 客户端上配置 Trac 扩展:

  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。
  2. 在新窗口中,单击问题跟踪程序选项卡。
  3. 单击绑定到此问题跟踪系统单选按钮。
  4. 选择 Trac 跟踪系统。
  5. 现在,选择要将绑定应用于的存储库:
    • 如果要使用全局扩展配置,则选择 plastic-global-config 存储库。
    • 如果要使用问题跟踪程序绑定到所有存储库,请选择 Repositories
    • 如果要使用 Trac 绑定到特定存储库,请选择该存储库。
    Plastic SCM 问题跟踪配置:Trac
  6. 默认情况下会激活将问题绑定到 Plastic 分支选项以使用分支任务模式。
    要使用变更集任务模式,请选择将问题绑定到 Plastic 变更集选项。
  7. 现在,必须相应地配置 Trac 参数(Trac 服务器所在的 URL 地址、凭据、分支前缀等)。
    了解有关 Trac 配置参数的更多信息。
客户端 - Linux 和 macOS 系统

可使用以下方法之一,在 Linux 或 macOS 机器的 Plastic SCM 客户端上配置 Trac 扩展:

  • 在服务器中设置全局扩展配置。这样,默认情况下所有 Plastic 客户端都具有相同的 Trac 设置。
  • 设置本地 Trac 配置。为此,请执行以下操作:
    1. $HOME/.plastic4 下创建结构 issuetrackers/server_port/repository,其中 repository 是以下值之一:
      • 要链接到问题跟踪程序的存储库的名称。
      • allrepos,这意味着您的所有存储库都将链接到问题跟踪程序。
    2. trac.conf 示例配置文件复制到新创建的路径中。
      可在以下位置找到此文件:
      • Window 或 Linux:plasticscm_install_path/client/extensions/config_samples
      • macOS:/Applications/PlasticSCM.app/Contents/IssueTrackerConfigSamples

      然后,您将获得类似以下的内容:

      • /home/pablo/.plastic4/issuetrackers/localhost_8087/info/trac.conf
      • /home/pablo/.plastic4/issuetrackers/localhost_8087/allrepos/trac.conf

    3. 编辑 trac.conf 文件:
      1. 编辑 WorkingMode 参数以分配以下值之一:TaskOnBranchTaskOnChangeset
      2. 相应地配置其余的 Trac 扩展参数(Trac 服务器所在的 URL 地址、凭据、分支前缀等)。
        了解有关 Trac 配置参数的更多信息。
    4. 编辑 client.conf 文件以添加以下键:
      <Extensions>
          <Extension AssemblyFile="plasticscm_install_path/client/extensions/trac/tracextension.dll" />
      </Extensions>
      
客户端配置 - 参数
  • Base Trac URL:指定安装并运行 Trac 服务器的 URL。
  • This server requires authenticationUser namePassword:如果 Trac 服务器配置为基本身份验证“用户/密码”模式,则应启用 This server requires authentication 复选框并键入凭据以根据 Trac 服务器进行身份验证。
  • Branch prefix:如果要使用分支任务模式,建议指定此参数(但不是强制性的)。此分支前缀将用于把 Plastic 分支绑定到 Trac 任务。
    例如,如果输入 scm 前缀,则名称以前缀 scm 开头的所有分支都将链接到 Trac 问题。

Trac - 特征

分支任务工作模式

默认配置的工作模式是分支任务模式,非常适合与“任务分支”模式搭配使用。在这种工作模式下会为每个要完成的任务创建一个新分支。

像往常一样,第一步是在 Trac 中创建问题。这一步骤通常由项目经理完成。具体做法是单击“新建支持票证”选项,随后将打开一个对话框,其中包含要处理的新问题的信息。这些信息有标题、描述、严重性等。

在 Trac 中创建新的支持票证

创建任务或支持票证后,Trac 为其分配一个编号(下例图片中的编号 4)。

Trac 中的支持票证列表

现在,开发者必须处理分配给他/她的任务。因此,他们将创建新分支(此操作很简单,只需右键单击父分支并选择创建子分支选项),如下图所示。为了将新分支链接到 Trac 中的问题,其名称必须与针对 Trac 扩展配置的分支前缀(如果已定义)和 Trac 问题编号(本例中的问题编号为 4)相匹配。因此,如果分支前缀设置为“scm”,则分支名称 scm004 将链接到 Trac 支持票证 #4

在 Plastic SCM 中创建新分支

通过单击显示扩展信息按钮(显示扩展信息),即可显示分支的扩展信息。在分支视图中选择一个分支时,右侧窗格将显示相关任务/缺陷的信息:编号、已将任务分配到的所有者或开发者、状态、标题和注释。

在“分支任务”模式下工作时的 Plastic SCM 分支扩展信息

通过双击 Trac 信息任务或按下在浏览器中打开问题按钮(在浏览器中打开问题),系统将打开一个显示相关分支任务的新浏览器窗口,并显示 Trac 任务的完整信息。

变更集任务工作模式

要将 Plastic SCM 配置为在变更集任务工作模式下运行,用户必须配置 Trac 扩展并选择将问题绑定到 Plastic 变更集选项,如前面客户端部分所述。

工作流程将如下所述:

  1. 在 Trac 中创建问题。当开发者开始处理一个问题时,该问题就是未完成状态。
  2. 对代码进行更改,从而签出在 Plastic 中出现的项。
  3. 当用户决定签入更改时,Plastic SCM 将显示一个新对话框,在其中可以将 Trac 任务与此新变更集链接起来:
  4. 用户可以通过以下选项之一来链接变更集和任务:
    • 添加新问题 - 单击添加新问题按钮打开一个新对话框。现在,用户可以选择一项或多项任务或者缺陷来链接到变更集:
    • 输入注释井号标签 - 在签入注释文本框中输入注释,该注释应以“#”字符开头,后跟问题序号(还可以选择后跟冒号)。这将在相关问题中记录签入信息。例如,#3: Updated values

一旦变更集链接到 Trac 中的支持票证或任务,此信息就可以显示在 Plastic SCM 的变更集视图中。当扩展信息面板可见时(显示扩展信息),如果单击某个变更集,则 Plastic 将显示相关的 Trac 任务:

“变更集任务”模式下的变更集视图以及详细信息

用户还可以从 Trac 扩展窗格中添加新任务或删除以前的任务。此外,通过双击与某个变更集关联的每个任务或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个新的 Web 浏览器窗口将会打开并显示所选的 Trac 任务。每当用户在 Trac 中修改任务时,通过按 Trac 扩展窗格上的刷新按钮即可在 Plastic GUI 上更新相应的新数据。


Jira 集成

本节介绍设置 Jira 和 Plastic SCM 以协同工作所需的步骤。

在 Windows、Linux 和 macOS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

Jira - 配置

在本章中,您将学习如何在服务器端客户端配置 Jira 集成。

Jira 服务器配置

  1. Plastic SCM 会将变更集内包含的文件和文件夹记录到它们的 Jira 问题中。为了使功能正常工作,Jira 管理员需要创建一个自定义字段。
    1. 要创建此自定义字段,请转到“管理”屏幕上的“问题”选项卡,然后单击左侧“问题字段”部分中的“自定义字段”链接:

      Jira 中的“问题字段”选项

    2. 单击“添加自定义字段”。

      在 Jira 中添加自定义字段

    3. 现在可以设置新的字段类型了。选择“文本字段(多行)”,允许无限制的文本大小。这很方便,因为一项任务可以影响许多文件,并且需要将它们存储在此字段中。在 Jira 上签入操作的日志由 Plastic SCM 使用此自定义字段完成:

      指定自由文本字段类型

    4. 然后,有必要为该字段提供一个名称。任何名称都可以,因为 Plastic 将使用字段 ID 而不是名称来引用该字段。“Plastic SCM”便可作为一个描述性名称:

      自定义字段名称

    5. 当 Jira 要求将字段与屏幕关联时,选择“默认屏幕”:

      在 Jira 中指定更多选项

      默认情况下,新字段是空的,并且在获取内容之前不会显示在配置的屏幕中。

    6. Jira 会为自定义字段分配一个内部 ID。此 ID 将用于配置 Plastic SCM 和 Jira 之间的链接。此信息可在屏幕页面地址栏上的 URL 中找到:

      URL 中的自定义字段

    7. 该字段现已创建完成并可供使用:

      Plastic SCM 自定义文本字段

  2. 最后一步是确保 Plastic 可以访问 Jira 的远程 API。
    Jira Cloud 用户的重要注意事项

    在 Jira Cloud 中,默认启用“接受远程 API 调用”选项。因此,Jira Cloud 用户可以跳过此步骤。

    1. 单击“系统”部分下的“常规配置”链接。
    2. 在此处确认已启用“接受远程 API 调用”选项:

      Jira 中的全局设置列表

    3. 如果是禁用状态,请编辑并启用该选项:

      接受远程 API 调用

完成这些步骤后,Jira 服务器便准备好了接受 Plastic SCM 集成。

客户端配置

了解如何在 WindowsLinux 或 macOS 系统中配置 Jira 集成。

客户端配置 - Windows

按照以下步骤在 Windows 机器的 Plastic SCM 客户端上配置 Jira 扩展:

  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。
  2. 在新对话框中,单击问题跟踪程序选项卡。
  3. 单击绑定到此问题跟踪系统单选按钮。
  4. 选择 Atlassian Jira 跟踪系统。
  5. 现在,选择要将绑定应用于的存储库:
    • 如果要使用全局扩展配置,则选择 plastic-global-config 存储库。
    • 如果要使用问题跟踪程序绑定到所有存储库,请选择 Repositories
    • 如果要使用 codeBeamer 绑定到特定存储库,请选择该存储库。
    Plastic SCM 中的问题跟踪配置:Jira
  6. 默认情况下会激活将问题绑定到 Plastic 分支选项以使用分支任务模式。
    要使用变更集任务模式,请选择将问题绑定到 Plastic 变更集选项。此模式将允许用户在签入时选择更改将链接到的任务。
  7. 现在,必须相应地配置 Jira 参数(Jira 服务器所在的 URL 地址、凭据、分支前缀等)。
    了解有关 Jira 配置参数的更多信息。
客户端配置 - Linux 和 macOS 系统

可使用以下方法之一,在 Linux 或 macOS 机器的 Plastic SCM 客户端上配置 Jira 扩展:

  • 在服务器中设置全局扩展配置。这样,默认情况下所有 Plastic 客户端都具有相同的 Jira 设置。
  • 设置本地 Jira 配置。为此,请执行以下操作:
    1. $HOME/.plastic4 下创建结构 issuetrackers/server_port/repository,其中 repository 是以下值之一:
      • 要链接到问题跟踪程序的存储库的名称。
      • allrepos,这意味着您的所有存储库都将链接到问题跟踪程序。
    2. jira.conf 示例配置文件复制到新创建的路径中。
      可在以下位置找到此文件:
      • Window 或 Linux:plasticscm_install_path/client/extensions/config_samples
      • macOS:/Applications/PlasticSCM.app/Contents/IssueTrackerConfigSamples

      然后,您将获得类似以下的内容:

      • /home/pablo/.plastic4/issuetrackers/localhost_8087/info/jira.conf
      • /home/pablo/.plastic4/issuetrackers/localhost_8087/allrepos/jira.conf

    3. 编辑 jira.conf 文件:
      1. 编辑 WorkingMode 参数以分配以下值之一:TaskOnBranchTaskOnChangeset
      2. 相应地配置其余的 Jira 扩展参数(Jira 服务器所在的 URL 地址、凭据、分支前缀等)。
        了解有关 Jira 配置参数的更多信息。
    4. 编辑 client.conf 文件以添加以下键:
      <Extensions>
          <Extension AssemblyFile="plasticscm_install_path/client/extensions/jira/jiraextension.dll" />
      </Extensions>
      
客户端配置 - 参数
  • Host:指定 Jira 服务器所在的 URL。请注意,该 URL 必须包含运行 Jira 服务器的端口。
  • User namePassword:指定用于登录 Jira 并记录更改的 Jira 凭据。
    Jira Cloud 用户的重要注意事项

    如果使用 Jira Cloud,User name 必须是帐户的电子邮件地址,Password 必须是 API 令牌。您可以通过他们的官方文档了解如何为 Atlassian Cloud 帐户生成 API 令牌。

    请注意,这些字段可以是 Jira 中的用户凭据,也可以是专门为记录 Plastic SCM 更改而创建的其他 Jira 用户的凭据。Jira 上的问题历史记录会将相关更改显示为来自此处配置的用户。
  • Branch prefix:如果要使用分支任务模式,建议指定此参数(但不是强制性的)。此分支前缀将用于把 Plastic 分支绑定到 Jira 任务。
    例如,如果输入 scm 前缀,则名称以前缀 scm 开头的所有分支都将链接到 Jira 任务。
  • Project Key:指定相应问题将与 Plastic 分支相关的 Jira 项目的键。
  • Custom Field ID:此参数是用于记录 Jira 任务的 Plastic 签入信息的自定义字段的标识符。Jira 在创建此字段时会分配自定义字段 ID,此处只需添加这个字段 ID。
    这是可选参数。如果配置中没有设置此参数,则 Plastic SCM 不会将有关签入的任何信息记录到 Jira 的相关问题中。用户仍然可以在从 Jira 问题创建分支时受益于 Jira 集成功能,或受益于从分支资源管理器中浏览 Jira 问题的便利性。
    Next-gen 项目的重要注意事项

    Next-gen 项目不支持该字段。
    请将 Custom Field ID 留空以将签入信息添加为注释。

  • Use LDAP credentials if available:如果 Plastic SCM 客户端身份验证模式为 LDAP,则可以通过选中此参数将 Jira 扩展配置为重复使用这些凭据来登录 Jira。请记住,Plastic SCM 服务器和 Jira 必须共享相同的 LDAP 用户目录才能使用此功能。
  • Use default proxy credentials:针对所有 Jira 扩展连接使用默认凭据来自动设置代理凭据。
  • Issue query limit:此参数用于在“创建分支”对话框中手动调整返回结果的最大数量。
    此参数的默认值为 50,并可设置为任意正数。
  • Resolved issue states:保存一个被视为“已解决”状态的状态名称列表(以逗号分隔的列表)。
    默认值为完成,因此默认情况下“创建分支”对话框的任务列表中不会显示处于完成状态的问题。
  • Issue types:允许按类型筛选 Jira 扩展检索到的问题。只需输入以逗号分隔的问题类型列表。此字段很有用,例如,如果只想查看 Plastic SCM Bug任务问题,可筛选掉其余问题。
    如果使用的是 GNU/Linux 或 macOS,可根据需要复制和编辑以下行,然后将其粘贴到 jira.conf 文件中:
    Name=Issue types;Value=Bug,Task;Type=Text;IsGlobal=False
    
  • Fields mapping:允许映射 Jira 问题中的字段,这些字段将显示在分支视图或变更集视图的任务信息面板上。
    了解有关 Jira 字段映射的更多信息。
  • Status transition:允许根据变更集注释来更改关联问题的状态。此功能的作用是将问题同时绑定到分支和变更集。
    了解有关状态转换的更多信息。

Jira - 特征

分支任务工作模式

默认配置的工作模式是分支任务模式,非常适合与“任务分支”模式搭配使用。在这种工作模式下会为每个要完成的任务创建一个新分支。

为了开始使用 Plastic SCM 和 Jira 扩展,必须在问题跟踪系统上创建任务,具体方法是单击“创建问题”选项并键入与新问题相关的数据,例如名称、关联项目、摘要,等等。

在 Jira 中创建新问题

Jira 将为新创建的问题分配一个编号,该编号与处理该任务时分配给 Plastic 分支的编号相同,在本例中,我们创建的问题编号是 1。

Jira 中问题的详细信息

然后,分配到该问题的开发者开始处理问题。他们将使用 Plastic SCM GUI 客户端创建一个新分支。有两个选项可以创建链接到 Jira 的新分支:

  • 手动:输入分支名称。请注意,新分支的名称必须与 Jira 上的问题编号(在本例中为编号 1)相匹配,并在前面添加 scm 前缀(就像 Plastic SCM Jira 扩展上配置的那样)。

    为任务创建一个新分支

  • 从任务:从 Jira 中选择现有任务。

    为任务创建一个新分支

通过单击分支视图中的显示扩展信息按钮(显示扩展信息),与分支相关的信息将显示在 Plastic GUI 的右侧面板上。选择 Plastic 分支会显示 Jira 问题信息:

与分支关联的任务的详细信息

通过双击它或按下在浏览器中打开问题按钮(在浏览器中打开问题),系统将打开一个显示相关分支问题的新浏览器窗口,并显示 Jira 任务的完整信息。当用户更改问题的任何字段时,通过单击 Jira 扩展面板的刷新按钮即可显示新的信息。

变更集任务工作模式

要将 Plastic SCM 配置为在变更集任务工作模式下运行,用户必须配置 Jira 扩展并选择将问题绑定到 Plastic 变更集选项,如前面客户端部分所述。

工作流程将如下所述:

  1. 在 Jira 中创建问题。当开发者开始处理一个问题时,该问题就是未完成状态。
  2. 对代码进行更改,从而签出在 Plastic 中出现的项。
  3. 当用户决定签入更改时,Plastic SCM 将显示一个新对话框,在其中可以将 Jira 问题与此新变更集链接起来:
  4. 用户可以通过以下选项之一来链接变更集和任务:
    • 添加新问题 - 单击添加新问题按钮打开一个新对话框。现在,用户可以选择一项或多项任务来链接到变更集:
    • 输入注释井号标签 - 在签入注释文本框中输入注释,该注释应以“#”字符开头,后跟问题序号(还可以选择后跟冒号)。这将在相关问题中记录签入信息。例如,#PJI-2: Updated values

一旦变更集已链接到 Jira 中的问题或任务,此信息就可以显示在 Plastic SCM 的变更集视图中。当扩展信息面板可见时(显示扩展信息),通过单击某个变更集即可显示相关的 Jira 问题:

“变更集任务”工作模式下的变更集视图以及详细信息

用户还可以从 Jira 扩展信息添加新任务或删除以前的任务。此外,通过双击与某个变更集关联的每个问题或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个新的浏览器窗口将会打开并显示所选的 Jira 任务。每当用户在任务跟踪工具中修改问题时,通过按 Jira 扩展窗格上的刷新按钮即可在 Plastic GUI 上更新相应的新数据。

签入操作记录

除了能够在 Plastic SCM 中显示绑定到分支或变更集的 Jira 数据之外,该集成还会在 Jira 中保留修改相关项的记录。已签入更改且该集成处于活动状态后,Jira 将使用分支任务变更集任务工作模式在“Plastic SCM”自定义字段中显示受影响的项:

Jira 问题详细信息 - 变更集 - Plastic SCM 签入信息


Jira - 多项目配置

Plastic SCM 还允许 Jira 多项目配置。这个想法是让每个分支显式包含其相关任务的项目密钥,而不是为所有分支定义一个全局项目密钥。

配置 Jira 服务器后,即可配置 Plastic SCM 客户端以使用多项目配置。

要在 Plastic SCM 客户端上配置 Jira 扩展,请单击 Plastic SCM GUI 主窗口的首选项选项卡。随即将打开新的对话窗口。单击问题跟踪选项卡,选择单选按钮绑定到此问题跟踪系统,然后选择 Atlassian Jira

  • 默认情况下会激活将问题绑定到 Plastic 分支选项。如果 Plastic SCM 配置为在此模式下工作,则建议指定分支前缀(但不是强制性的)。此分支前缀将用于把 Plastic 分支绑定到 Jira 任务。此多项目配置示例将使用 JIRA_ 作为分支前缀。
  • 项目密钥参数必须具有 MULTIPLE_PROJECTS 值。
  • 如果是在 Linux 或 macOS 系统上工作,请记住更新 jira.conf 文件中的必填值。

Plastic SCM 中的问题跟踪配置:Jira 多项目


必须在 Jira 上创建项目和任务:

Jira 项目

Jira 任务


现在是时候创建 Plastic SCM 分支了。请注意,我们选择“JIRA_”前缀来标识与 Jira 任务相关的分支。

当我们使用多项目配置时,区分哪个分支与每个项目相关很重要。如下图所示,我们使用以下方案来命名 Plastic SCM 分支:branchPrefix_projectShortName-taskID

例如,Jira 任务 RI-1 的分支将是 JIRA_RI-1;而对于我们的 Jira 项目 FG (Forms generator),将是 JIRA_FG-1

Plastic SCM 多项目分支资源管理器


字段映射

Jira 扩展允许映射 Jira 问题中的字段,这些字段将显示在 Plastic SCM 分支视图或变更集视图的任务信息面板上。

要定义 Jira 字段映射功能,必须配置字段映射参数。为此,请通过单击 Plastic SCM GUI 主窗口的首选项选项卡打开 Jira 扩展配置。然后,单击问题跟踪选项卡。向下滚动参数列表,直到出现字段映射配置参数:

字段映射配置

此参数会存储由“|”(竖线)字符分隔的字段名称对 (from->to)。参数语法如下:

[ jira_field_name -> plastic_property_name [ | jira_field_name -> plastic_property_name [ | ... ] ] ]

如果是在 Linux 或 macOS 系统上工作,请记住更新 jira.conf 文件中的必填字段。

例如,以下是 Jira 字段映射的有效配置:

issue.Fields.Project.Name->Description|issue.Fields.Reporter.Name->Owner|issue.Fields.Description->Title

在本示例中,扩展信息面板“Atlassian Jira 扩展”上显示的值如下:显示的描述将包含项目密钥,显示的所有者将是创建相应问题的 Jira 用户,显示的标题将是 Jira 问题描述。

“from->to”对中的 to 属性描述了 plastic_property_name 所指的 Plastic SCM 字段。扩展信息面板上可用 Plastic SCM 字段的列表如下:

  • ID
  • 所有者
  • 状态
  • 标题
  • 描述

字段映射示例

from 属性描述了 Jira 问题中的字段 (jira_field_name),其值将被读入字段 to,如上所述。下表详细列出了 Jira 扩展中 from 属性的可用字段列表:

from 字段值 字段数据类型
issue.Fields.Assignee.Name String
issue.Fields.AttachmentNames String[]
issue.Fields.ComponentNames String[]
issue.Fields.Created DateTime
issue.Fields.Description String
issue.Fields.DueDate DateTime
issue.Fields.Environment String
issue.Key String
issue.Fields.Priority.Name String
issue.Fields.Project.Name String
issue.Fields.Reporter.Name String
issue.Fields.Resolution String
issue.Fields.Status.Name String
issue.Fields.Summary String
issue.Fields.Issuetype.Name String
issue.Fields.Updated DateTime
issue.Fields.Votes.Number Long

可以使用 customFieldValues 修饰符访问自定义 Jira 字段的值,就像在此示例映射中一样:

customFieldValues[10000]->Description

[ ] 之间的索引是可以从 Jira 获取的自定义字段 ID,如前几节所述。在示例 10000 中,只需提供自定义字段 ID 号。

字段映射示例 - 自定义字段


状态转换

Jira 问题跟踪程序扩展能够根据变更集注释来更改分支/变更集的相关问题的状态。

为此,您可以定义自己的关键字/状态映射。如果变更集注释中存在关键字,则问题状态将更改为已定义状态。

映射的格式如下:

KEY-VALUE|KEY-VALUE

例如:

[FIXED]-Ready for QA|[WONTFIX]-Done

上面的示例表示,如果变更集的注释中包含关键字 [FIXED](带方括号),则问题状态将更改为 Ready for QA

此功能的作用是将问题同时绑定到分支和变更集。

请记住,您的 Jira 工作流程必须允许状态之间的转换。

不需要为此设置 Plastic SCM 自定义字段 ID。

状态转换配置

了解如何在 WindowsLinux 或 macOS 系统中配置状态转换功能。

状态转换配置 - Windows
  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。然后,单击问题跟踪程序选项卡。随即将打开 Jira 扩展配置。
  2. 转到状态转换字段,并输入所需的 KEY-VALUE 对。
状态转换配置 - Linux 和 macOS 系统
  1. 打开 jira.conf 文件。
  2. 添加以下行,并将 Value 参数中的文本替换为所需的 KEY-VALUE 对:
    Name=Status transitions;Value=[FIXED]-Ready for QA|[WONTFIX]-Done;Type=Text;IsGlobal=True
    

Axosoft 集成

如果需要使用 Plastic SCM Axosoft 集成,请按照本节中的步骤操作。

此扩展与 Axosoft v14 及更高版本兼容。

在 Windows、Linux 和 macOS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

Axosoft - 配置

在本章中,您将学习如何在服务器端客户端配置 Axosoft 集成。

Axosoft 服务器配置

要设置 Axosoft 扩展功能,需要向 Plastic SCM 提供 Axosoft 服务器基本 URL。

Plastic SCM 客户端配置 Axosoft 集成时所需的另外两个配置参数是 client-idclient-secret 参数。要获得这些值,首先需要转到“工具”菜单下的“系统选项”选项:

Axosoft - 系统选项

在“系统设置”窗口中,单击“Axosoft API 设置”选项卡。在此视图下,选中“启用 API”复选框并单击“管理 API 密钥”按钮。

Axosoft - 管理 API 密钥

在新窗口中,单击“添加”按钮以获取将用于识别和验证 Plastic SCM 与 Axosoft 集成的两个值。键入所需的“应用程序名称”,复制“客户端 ID”和“客户端密码”值,然后单击“保存”按钮:

Axosoft - 添加 API 密钥

保存 API 密钥后,就可以创建一个自定义字段,以允许 Plastic SCM 记录在与 Axosoft 问题相关的每个签入操作中所做的所有更改。

要允许此操作,必须在 Axosoft 中创建一个新的自定义字段。为此,请转到“工具”菜单并选择“字段”子菜单下的“自定义字段”选项:

Axosoft - 创建自定义字段

在新窗口中的“Bug”选项卡下,单击“添加”按钮,然后键入 Plastic SCM 作为新的自定义字段并选择“大文本”类型:

创建新的自定义字段以记录签入操作

保存新的自定义字段以供在下一节的 Plastic SCM 客户端配置中使用。

有关 Axosoft 服务器配置的更多信息,请参阅 Axosoft 安装中包含的手册或 Axosoft 网站。

客户端配置

了解如何在 WindowsLinux 或 macOS 系统中配置 Axosoft 集成。

客户端配置 - Windows

按照以下步骤在 Windows 机器的 Plastic SCM 客户端上配置 Axosoft 扩展:

  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。
  2. 在新窗口中,单击问题跟踪程序选项卡。
  3. 单击绑定到此问题跟踪系统单选按钮。
  4. 选择 Axosoft 选项。
  5. 现在,选择要将绑定应用于的存储库:
    • 如果要使用全局扩展配置,则选择 plastic-global-config 存储库。
    • 如果要使用问题跟踪程序绑定到所有存储库,请选择 Repositories
    • 如果要使用 codeBeamer 绑定到特定存储库,请选择该存储库。
    问题跟踪配置:Axosoft OnTime
  6. 默认情况下会激活将问题绑定到 Plastic 分支选项以使用分支任务模式。
    要使用变更集任务模式,请选择将问题绑定到 Plastic 变更集选项。
  7. 现在,必须相应地配置 Axosoft 参数(Axosoft 服务器所在的 URL 地址、凭据、分支前缀等):
    了解有关 Axosoft 配置参数的更多信息。
客户端配置 - Linux 和 macOS 系统

可使用以下方法之一,在 Linux 或 macOS 机器的 Plastic SCM 客户端上配置 Axosoft 扩展:

  • 在服务器中设置全局扩展配置。这样,默认情况下所有 Plastic 客户端都具有相同的 Axosoft 设置。
  • 设置本地 Axosoft 配置。为此,请执行以下操作:
    1. $HOME/.plastic4 下创建结构 issuetrackers/server_port/repository,其中 repository 是以下值之一:
      • 要链接到问题跟踪程序的存储库的名称。
      • allrepos,这意味着您的所有存储库都将链接到问题跟踪程序。
    2. ontime.conf 示例配置文件复制到新创建的路径中。
      可在以下位置找到此文件:
      • Window 或 Linux:plasticscm_install_path/client/extensions/config_samples
      • macOS:/Applications/PlasticSCM.app/Contents/IssueTrackerConfigSamples

      然后,您将获得类似以下的内容:

      • /home/pablo/.plastic4/issuetrackers/localhost_8087/info/ontime.conf
      • /home/pablo/.plastic4/issuetrackers/localhost_8087/allrepos/ontime.conf

    3. 编辑 ontime.conf 文件:
      1. 编辑 WorkingMode 参数以分配以下值之一:TaskOnBranchTaskOnChangeset
      2. 相应地配置 Axosoft 参数(Axosoft 服务器所在的 URL 地址、凭据、分支前缀等):
        了解有关 Axosoft 配置参数的更多信息。
    4. 编辑 client.conf 文件以添加以下键:
      <Extensions>
          <Extension AssemblyFile="plasticscm_install_path/client/extensions/ontime/ontimeextension.dll" />
      </Extensions>
      
客户端配置 - 参数
  • Axosoft Root URL:正如之前在服务器主题中所介绍的,Plastic SCM Axosoft 扩展需要这个值才能正常运行。
  • UserPassword:每个 Plastic SCM 用户都必须拥有一个 Axosoft 帐户并使用 Axosoft 凭据来允许 Plastic 与 Axosoft 服务器连接。
  • Branch prefix:如果将 Plastic SCM 配置为使用分支任务模式,用户将能够配置多个分支前缀以将它们绑定到多个 Axosoft 对象。例如,如果用户启用了 Axosoft 缺陷和 Axosoft 任务之间的映射,则名称以 def 开头的分支将链接到 Axosoft 缺陷,而名称以前缀 task 开头的分支将链接到 Axosoft 任务。
    例如,分支名称 def021 将链接到 Axosoft 缺陷 DE21,而分支名称 task021 将链接到 Axosoft 任务 TA21。其余的对象具有相同的行为。
  • Client IDClient Secret:这些字段中必须填写从 Axosoft 管理面板生成的令牌。请参阅服务器主题以了解更多信息。
  • Plastic SCM custom field:此参数是在 Axosoft 上创建的自定义字段,用于记录 Plastic SCM 签入信息
  • Pending status list:您可以使用此字段,通过输入逗号分隔值字符串来编辑被视为“待定”状态的状态列表(影响“创建分支”对话框中显示的任务列表)。

Axosoft - 特征

分支任务工作模式

默认配置的工作模式是分支任务模式,非常适合与“任务分支”模式搭配使用。在这种工作模式下会为每个要完成的任务创建一个新分支。

要开始使用 Plastic SCM 及其 Axosoft 扩展,必须在问题跟踪系统中创建缺陷。为此,请单击“添加”菜单并选择“完全添加”选项,如下图所示:

在 OnTime 中创建新的缺陷

在“添加 Bug”窗口中,必须填写新任务的名称、优先级、状态、分配的工程师等信息。保存新缺陷后,Axosoft 将为其指定一个标识号,供分配的开发者在创建 Plastic SCM 分支以处理该任务时使用。

OnTime 中新缺陷的缺陷信息

然后,分配给该问题的开发者开始处理问题,即通过 Plastic SCM GUI 客户端创建一个新分支。请注意,新分支的名称必须与针对 Plastic SCM Axosoft 扩展配置的分支前缀(如果已定义)相匹配,并后跟要链接的由 Axosoft 分配的问题编号。

通过单击分支视图中的显示扩展信息按钮(显示扩展信息),与分支相关的信息将显示在 GUI 的右侧,如以下屏幕截图所示。选择分支时会显示 Axosoft 缺陷的详细信息:名称、所有者、状态、标题和描述。

“分支任务”模式下分支的详细信息

通过双击它或按下在浏览器中打开问题按钮(在浏览器中打开问题),系统将打开一个包含相关分支任务的新 Web 浏览器窗口,并会显示 Axosoft 任务的完整信息。当用户更改问题的状态或任何其他字段时,通过单击 Axosoft 扩展的刷新按钮即可显示新的信息。

变更集任务工作模式

要将 Plastic SCM 配置为在变更集任务工作模式下运行,用户必须配置 Axosoft 扩展并选择将问题绑定到 Plastic 变更集选项,如前面客户端部分所述。

工作流程将如下所述:

  1. 在 Axosoft 中创建问题。当开发者开始处理一个问题时,该问题就是未完成状态。
  2. 对代码进行更改,从而签出在 Plastic 中出现的项。
  3. 当用户决定签入更改时,Plastic SCM 将显示一个新对话框,在其中可以将 Axosoft 问题与此新变更集链接起来:
  4. 用户可以通过以下选项之一来链接变更集和任务:
    • 添加新问题 - 单击添加新问题按钮打开一个新对话框。现在,用户可以选择一项或多项任务来链接到变更集:
    • 输入注释井号标签 - 在签入注释文本框中输入注释,该注释应以“#”字符开头,后跟问题序号(还可以选择后跟冒号)。这将在相关问题中记录签入信息。例如,#def3: Included encode modes

一旦变更集已链接到 Axosoft 缺陷或任务,变更集视图中便会显示扩展信息(显示扩展信息)。用户还可以通过 Axosoft 扩展面板添加新任务或删除以前的任务;此外,通过双击每个问题或单击在浏览器中打开问题按钮(在浏览器中打开问题),系统将打开一个包含相关 Axosoft 问题的新 Web 浏览器窗口。每当用户在任务跟踪工具中修改问题时,通过按 Axosoft 扩展窗格上的刷新按钮即可在 Plastic GUI 上更新相应的新数据。

“变更集任务”工作模式下的变更集详细视图

已签入操作记录

除了显示与 Plastic SCM 集成的分支及变更集关联的问题的信息外,此扩展还会在 Axosoft 中记录与相关问题有关的每个签入操作。

因此,用户可以看到每个签入操作是如何在 Axosoft 任务中注册的:

Plastic SCM 生成的签入信息


VersionOne 集成

本节介绍使用 Plastic SCM VersionOne 集成的步骤。

此扩展与 VersionOne 7.2 及更高版本兼容。

在 Windows、Linux 和 macOS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

VersionOne - 配置

在本章中,您将学习如何在服务器端客户端配置 VersionOne 集成。

VersionOne 服务器配置

无需在服务器端对 Plastic SCM VersionOne 扩展配置进行任何更改。

客户端配置

了解如何在 WindowsLinux 或 macOS 系统中配置 VersionOne 集成。

客户端配置 - Windows

要在 Windows 机器的 Plastic SCM 客户端上配置 VersionOne 扩展,请执行以下操作:

  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。
  2. 在新窗口中,单击问题跟踪程序选项卡。
  3. 单击绑定到此问题跟踪系统单选按钮。
  4. 选择 VersionOne 跟踪系统。
  5. 现在,选择要将绑定应用于的存储库:
    • 如果要使用全局扩展配置,则选择 plastic-global-config 存储库。
    • 如果要使用问题跟踪程序绑定到所有存储库,请选择 Repositories
    • 如果要使用 codeBeamer 绑定到特定存储库,请选择该存储库。
    Plastic SCM 中的问题跟踪配置:VersionOne
  6. 默认情况下会激活将问题绑定到 Plastic 分支选项以使用分支任务模式。
    要使用变更集任务模式,请选择将问题绑定到 Plastic 变更集选项。在这种情况下,所有 VersionOne 对象都可以映射到 Plastic 变更集。
  7. 现在,必须相应地配置 VersionOne 参数(VersionOne 服务器所在的 URL 地址、凭据、分支前缀等)。
    了解有关 VersionOne 配置参数的更多信息。
客户端 - Linux 和 macOS 系统

可使用以下方法之一,在 Linux 或 macOS 机器的 Plastic SCM 客户端上配置 VersionOne 扩展:

  • 在服务器中设置全局扩展配置。这样,默认情况下所有 Plastic 客户端都具有相同的 VersionOne 设置。
  • 设置本地 VersionOne 配置。为此,请执行以下操作:
    1. $HOME/.plastic4 下创建结构 issuetrackers/server_port/repository,其中 repository 是以下值之一:
      • 要链接到问题跟踪程序的存储库的名称。
      • allrepos,这意味着您的所有存储库都将链接到问题跟踪程序。
    2. versionone.conf 示例配置文件复制到新创建的路径中。
      可在以下位置找到此文件:
      • Window 或 Linux:plasticscm_install_path/client/extensions/config_samples
      • macOS:/Applications/PlasticSCM.app/Contents/IssueTrackerConfigSamples

      然后,您将获得类似以下的内容:

      • /home/pablo/.plastic4/issuetrackers/localhost_8087/info/versionone.conf
      • /home/pablo/.plastic4/issuetrackers/localhost_8087/allrepos/versionone.conf

    3. 编辑 versionone.conf 文件:
      1. 编辑 WorkingMode 参数以分配以下值之一:TaskOnBranchTaskOnChangeset
      2. 相应地配置其余的 VersionOne 扩展参数(VersionOne 服务器所在的 URL 地址、凭据、分支前缀等)。
        了解有关 VersionOne 配置参数的更多信息。
    4. 编辑 client.conf 文件以添加以下键:
      <Extensions>
          <Extension AssemblyFile="plasticscm_install_path/client/extensions/versionone/versiononeextension.dll" />
      </Extensions>
      
客户端配置 - 参数
  • Base URL:指定安装并运行 VersionOne 服务器的 URL。
  • UserPassword:如果未选择 Use integrated authentication 选项,则必须在这些字段中输入有效的 VersionOne 用户信息。
  • Defect prefixTask prefixTest prefixStory prefix:可链接的 VersionOne 对象包括缺陷、任务、测试和情景。
    如果将 Plastic SCM 配置为使用分支任务模式,用户将能够配置多个分支前缀以将它们绑定到多个 VersionOne 对象。
    让我们看一个示例。如果用户启用与 VersionOne 缺陷的映射,则名称以前缀 def 开头的所有 Plastic 分支都将链接到 VersionOne 缺陷。分支名称 def-1001 将链接到 VersionOne 缺陷 D-01001。其余的对象具有相同的行为。
    重要:请注意,VersionOne 从编号 1000 开始枚举它们的对象。
  • Use integrated authentication:此选项告诉 Plastic SCM 是否会通过 Windows 域用户来解析身份验证。

VersionOne - 特征

分支任务工作模式

默认的工作模式是分支任务,非常适合与“任务分支”模式搭配使用;在这种模式下会为每个任务创建一个新分支。

要开始使用 Plastic SCM 及其 VersionOne 扩展,第一步是在 VersionOne 中创建任务。这一步骤通常由项目经理完成,具体做法是单击 VersionOne Web 界面上的“添加缺陷”、“添加问题”、“添加待办事项”和“添加请求”快捷方式。随后将打开一个新的对话窗口以输入新任务的数据。VersionOne 为任务分配编号(从 1000 开始)。注意这一点非常重要,因为分支名称必须包含为该任务类型配置的前缀以及 VersionOne 分配的编号。

在 VersionOne 中创建新的待办事项

创建问题后,VersionOne 会为其分配一个编号。在下图中,我们可以看到创建的项列表:

VersionOne 中的缺陷列表

然后,分配到任务的开发者开始处理任务。他们必须创建新分支(此操作很简单,只需右键单击父分支并选择创建子分支选项),如下图所示。此外,为了将该分支链接到 VersionOne 中的任务,必须为该分支指定相同的编号(切记,此编号始终大于 1000):

在 Plastic SCM 中创建一个新分支以解决新问题

现在,用户只需访问分支视图中的扩展信息(显示扩展信息)并选择该分支,即可查看这些问题的信息。然后,视图右侧会显示一个新窗格,其中会显示 VersionOne 扩展信息:任务编号、所有者、状态等。

“分支任务”模式下的详细分支信息

通过双击与某个分支关联的任务或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个新的 Web 浏览器窗口将会打开。当用户更改问题的状态或任何其他字段时,通过刷新 VersionOne 扩展即可显示新的信息。

变更集任务工作模式

要将 Plastic SCM 配置为在变更集任务工作模式下运行,用户必须配置 VersionOne 扩展并选择将问题绑定到 Plastic 变更集选项,如前面客户端部分所述。

工作流程将如下所述:

  1. 在 VersionOne 中创建问题。当开发者开始处理一个问题时,该问题就是未完成状态。
  2. 对代码进行更改,从而签出在 Plastic 中出现的项。
  3. 当用户决定签入更改时,Plastic SCM 将显示一个新对话框,在其中可以将 VersionOne 缺陷/任务/测试/情景与此新变更集链接起来:
  4. 用户可以通过以下选项之一来链接变更集和 VersionOne 问题:
    • 添加新问题 - 单击添加新问题按钮打开一个新对话框。现在,用户可以选择一项或多项任务来链接到变更集:
    • 输入注释井号标签 - 在签入注释文本框中输入注释,该注释应以“#”字符开头,后跟问题序号(还可以选择后跟冒号)。这将在相关问题中记录签入信息。例如,#D-01002: Added search feature

一旦变更集已链接到 VersionOne 任务,变更集视图中便会显示扩展信息(显示扩展信息)。用户还可以从 VersionOne 扩展信息添加新任务或删除以前的任务。此外,通过双击与某个变更集关联的每个问题或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个包含 VersionOne 的浏览器窗口将会打开。每当用户修改 VersionOne 中的问题时,通过刷新 VersionOne 扩展信息即可在 Plastic SCM 中显示该问题。

“变更集任务”模式下的变更集视图以及详细信息


FogBugz 集成

本节介绍使用 Plastic SCM FogBugz 集成的步骤。

此扩展与 FogBugz 7.2 及更高版本兼容。

在 Windows、Linux 和 macOS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

FogBugz - 配置

了解如何在服务器端客户端配置 FogBugz 集成。

FogBugz 服务器配置

无需在服务器端对 Plastic SCM FogBugz 扩展进行任何更改。

客户端配置

了解如何在 WindowsLinux 或 macOS 系统中配置 FogBugz 集成。

客户端配置 - Windows

按照以下步骤在 Windows 机器的 Plastic SCM 客户端上配置 FogBugz 扩展:

  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。
  2. 在新窗口中,单击问题跟踪程序选项卡。
  3. 单击绑定到此问题跟踪系统单选按钮。
  4. 选择 FogBugz 跟踪系统。
  5. 现在,选择要将绑定应用于的存储库:
    • 如果要使用全局扩展配置,则选择 plastic-global-config 存储库。
    • 如果要使用问题跟踪程序绑定到所有存储库,请选择 Repositories
    • 如果要使用 codeBeamer 绑定到特定存储库,请选择该存储库。
    Plastic SCM 中的问题跟踪配置:FogBugz

  6. 默认情况下会激活将问题绑定到 Plastic 分支选项以使用分支任务模式。
    要使用变更集任务模式,请选择将问题绑定到 Plastic 变更集选项。
  7. 现在,必须相应地配置 FogBugz 参数(FogBugz 服务器所在的 URL 地址、凭据、分支前缀等)。
    了解有关 FogBugz 配置参数的更多信息。
客户端配置 - Linux 和 macOS 系统

可使用以下方法之一,在 Linux 或 macOS 机器的 Plastic SCM 客户端上配置 FogBugz 扩展:

  • 在服务器中设置全局扩展配置。这样,默认情况下所有 Plastic 客户端都具有相同的 FogBugz 设置。
  • 设置本地 FogBugz 配置。为此,请执行以下操作:
    1. $HOME/.plastic4 下创建结构 issuetrackers/server_port/repository,其中 repository 是以下值之一:
      • 要链接到问题跟踪程序的存储库的名称。
      • allrepos,这意味着您的所有存储库都将链接到问题跟踪程序。
    2. fogbugz.conf 示例配置文件复制到新创建的路径中。
      可在以下位置找到此文件:
      • Window 或 Linux:plasticscm_install_path/client/extensions/config_samples
      • macOS:/Applications/PlasticSCM.app/Contents/IssueTrackerConfigSamples

      然后,您将获得类似以下的内容:

      • /home/pablo/.plastic4/issuetrackers/localhost_8087/info/fogbugz.conf
      • /home/pablo/.plastic4/issuetrackers/localhost_8087/allrepos/fogbugz.conf

    3. 编辑 fogbugz.conf 文件:
      1. 编辑 WorkingMode 参数以分配以下值之一:TaskOnBranchTaskOnChangeset
    4. 相应地配置其余的 FogBugz 参数(FogBugz 服务器所在的 URL 地址、凭据、分支前缀等)。
      了解有关 FogBugz 配置参数的更多信息。
    5. 编辑 client.conf 文件以添加以下键:
      <Extensions>
          <Extension AssemblyFile="plasticscm_install_path/client/extensions/fogbugz/fogbugzextension.dll" />
      </Extensions>
      
客户端配置 - 参数
  • FogBugz URL:指定安装并运行 FogBugz 服务器的 URL。
  • User namePassword:这些字段中必须填写有效的 FogBugz 用户信息。
  • Branch prefix:如果要使用分支任务模式,建议指定一个 Branch prefix(但不是强制性的)。此分支前缀将用于把 Plastic 分支绑定到 FogBugz 任务。
    例如,如果输入 scm 前缀,则名称以前缀 scm 开头的所有分支都将链接到 FogBugz 问题。
  • Enable checkin log:此选项允许 FogBugz 记录在 Plastic SCM 中执行的所有签入操作

FogBugz - 特征

分支任务工作模式

默认配置的工作模式是分支任务,非常适合与“任务分支”模式搭配使用;在这种模式下会为每个任务创建一个新分支。

要开始使用 Plastic SCM 及其 FogBugz 扩展,必须在 FogBugz 中创建项目的任务。这一步骤通常由项目经理完成,只需单击“新建案例”选项即可。随后将打开一个新的对话窗口以键入新任务的数据。

在 FogBugz 中创建新问题

创建问题后,FogBugz 会为其分配一个编号。然后,分配到该任务的开发者开始处理任务。他们将创建新分支(此操作很简单,只需右键单击父分支并选择创建子分支选项),如下图所示。为了将该分支链接到 FogBugz 中的任务,分支名称必须与配置的分支前缀(如果已定义)以及相同的任务编号相匹配。

在 Plastic SCM 中创建一个新分支

现在,用户只需访问分支视图中的扩展信息(显示扩展信息)并选择该分支,即可查看这些问题的信息。视图右侧会显示一个新窗格,其中会显示 FogBugz 扩展信息:任务编号、所有者等。

分支视图在“分支任务”模式下显示扩展信息

通过双击它或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个新的 Web 浏览器窗口将会打开。这个窗口将显示 FogBugz 任务的完整信息。当用户更改问题的状态或任何其他字段时,通过单击 FogBugz 扩展的刷新按钮即可显示新的信息。

变更集任务工作模式

要将 Plastic SCM 配置为在变更集任务工作模式下运行,用户必须配置 FogBugz 扩展并选择将问题绑定到 Plastic 变更集选项,如前面客户端部分所述。

工作流程将如下所述:

  1. 在 FogBugz 中创建问题。当开发者开始处理一个问题时,该问题就是未完成状态。
  2. 对代码进行更改,从而签出在 Plastic 中出现的项。
  3. 当用户决定签入更改时,Plastic SCM 将显示一个新对话框,在其中可以将 FogBugz 任务与此新变更集链接起来:
  4. 用户可以通过以下选项之一来链接变更集和 FogBugz 问题:
    • 添加新问题 - 单击添加新问题按钮打开一个新对话框。现在,用户可以选择一个或多个问题来链接到变更集:
    • 输入注释井号标签 - 在签入注释文本框中输入注释,该注释应以“#”字符开头,后跟问题序号(还可以选择后跟冒号)。这将在相关问题中记录签入信息。例如,#4: Fixed login

一旦变更集已链接到 FogBugz 中的问题或任务,变更集视图中便会显示扩展信息(显示扩展信息)。用户还可以从 FogBugz 扩展信息添加新任务或删除以前的任务。此外,通过双击与某个变更集关联的每个问题或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个包含 FogBugz 的浏览器窗口将会打开。每当用户修改 FogBugz 中的问题时,通过刷新 FogBugz 扩展信息即可在 Plastic 中显示该问题。

变更集视图在“变更集任务”模式下显示详细信息

已签入操作记录

除了显示与 Plastic SCM 集成的分支及变更集关联的问题的信息外,此扩展还会在 FogBugz 中记录与相关问题有关的每个签入操作,但前提是已在客户端部分中选中启用签入日志复选框。

因此,用户可以通过单击“签入 - 单击以列出”链接,看到每个签入操作是如何在 FogBugz 任务中注册的:

Plastic SCM 生成的签入信息


Rally 集成

本节介绍使用 Plastic SCM Rally Software Development 集成的步骤。

在 Windows、Linux 和 macOS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

Rally - 配置

在本章中,您将学习如何在服务器端客户端配置 Rally 集成。

Rally 服务器配置

要设置 Rally 扩展功能,需要一个有效的 Rally 帐户。由于 Rally 是基于 Web 的服务,因此无需在服务器端或本地进行设置,所有针对 Rally 的操作均通过 Internet 完成。

客户端配置

了解如何在 WindowsLinux 或 macOS 系统中配置 Rally 集成。

客户端配置 - Windows

按照以下步骤在 Windows 机器的 Plastic SCM 客户端上配置 Rally 扩展:

  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。
  2. 在新窗口中,单击问题跟踪程序选项卡。
  3. 单击绑定到此问题跟踪系统单选按钮。
  4. 选择 Rally 跟踪系统。
  5. 现在,选择要将绑定应用于的存储库:
    • 如果要使用全局扩展配置,则选择 plastic-global-config 存储库。
    • 如果要使用问题跟踪程序绑定到所有存储库,请选择 Repositories
    • 如果要使用 codeBeamer 绑定到特定存储库,请选择该存储库。
    问题跟踪配置:Rally
  6. 默认情况下会激活将问题绑定到 Plastic 分支选项以使用分支任务模式。
    要使用变更集任务模式,请选择将问题绑定到 Plastic 变更集选项。在这种情况下,所有 Rally 对象都可以映射到 Plastic 变更集。
  7. 现在,必须相应地配置 Rally 参数(Rally 服务器所在的 URL 地址、凭据、分支前缀等)。
    了解有关 Rally 配置参数的更多信息。
客户端配置 - Linux 和 macOS 系统

可使用以下方法之一,在 Linux 或 macOS 机器的 Plastic SCM 客户端上配置 Rally 扩展:

  • 在服务器中设置全局扩展配置。这样,默认情况下所有 Plastic 客户端都具有相同的 Rally 设置。
  • 设置本地 Rally 配置。为此,请执行以下操作:
    1. $HOME/.plastic4 下创建结构 issuetrackers/server_port/repository,其中 repository 是以下值之一:
      • 要链接到问题跟踪程序的存储库的名称。
      • allrepos,这意味着您的所有存储库都将链接到问题跟踪程序。
    2. rally.conf 示例配置文件复制到新创建的路径中。
      可在以下位置找到此文件:
      • Window 或 Linux:plasticscm_install_path/client/extensions/config_samples
      • macOS:/Applications/PlasticSCM.app/Contents/IssueTrackerConfigSamples

      然后,您将获得类似以下的内容:

      • /home/pablo/.plastic4/issuetrackers/localhost_8087/info/rally.conf
      • /home/pablo/.plastic4/issuetrackers/localhost_8087/allrepos/rally.conf

    3. 编辑 rally.conf 文件:
      1. 编辑 WorkingMode 参数以分配以下值之一:TaskOnBranchTaskOnChangeset
      2. 相应地配置其余的 Rally 参数(Rally 服务器所在的 URL 地址、凭据、分支前缀等)。
        了解有关 Rally 配置参数的更多信息。
    4. 编辑 client.conf 文件以添加以下键:
      <Extensions>
          <Extension AssemblyFile="plasticscm_install_path/client/extensions/rally/rally.dll" />
      </Extensions>
      
客户端配置 - 参数
  • Rally URL:指定运行 Rally 服务器的 URL。
  • User namePassword:对于已配置的 Rally 服务器,必须在这些字段中输入有效的 Rally 用户信息。
  • Task prefixDefect prefixTest case prefixUser story prefix:这些是可链接到 Plastic SCM 的 Rally 对象。
    如果将 Plastic SCM 配置为使用分支任务模式,用户将能够配置多个分支前缀以将它们绑定到多个 Rally 对象。例如,如果用户启用了与 Rally 缺陷和 Rally 任务之间的映射,则名称以 def 开头的分支将链接到 Rally 缺陷,而名称以前缀 task 开头的分支将链接到 Rally 任务。
    让我们看一个示例。分支名称 def021 将链接到 Rally 缺陷 DE21,而分支名称 task021 将链接到 Rally 任务 TA21
    其余的对象具有相同的行为。

Rally - 特征

分支任务工作模式

为了使用这种工作模式,第一步是在 Plastic SCM Rally 扩展上设置该模式,按照上一节的指示操作,或者保留适用于该模式的默认配置。

要开始使用 Plastic SCM 及其 Rally 扩展,必须创建 Rally 中的对象。

可在专门的选项卡中通过单击“新建缺陷”操作创建缺陷。其余的 Rally 对象(例如“任务”、“测试用例”和“用户情景”)也是如此。

在 Rally 中创建新的缺陷

在“创建缺陷”窗口中,必须添加新任务的名称、优先级、状态等信息。保存新缺陷后,Rally 将为其指定一个标识字符串,供分配的开发者稍后在创建 Plastic 分支以处理该任务时使用。前缀 ID 将取决于对象类型。例如,如果用户创建了一个新任务且这是一个缺陷,则 ID 可能是 TA4DE4

通过单击显示扩展信息按钮(显示扩展信息),与分支相关的信息将显示在 GUI 的右侧,如以下屏幕截图所示。选择分支时会显示 Rally 对象的详细信息:

分支视图在“分支任务”工作模式下显示详细信息

通过双击它或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个包含相关分支任务的 Web 浏览器窗口将会打开。每当用户完成任务并更改其状态或任何其他字段时,为了查看新值,用户只需在 Plastic 分支扩展信息中进行刷新。

变更集任务工作模式

要将 Plastic SCM 配置为在变更集任务工作模式下运行,用户必须配置 Rally 扩展并选择将问题绑定到 Plastic 变更集选项,如前面客户端部分所述。

工作流程将如下所述:

  1. 在 Rally 中创建问题。当开发者开始处理一个问题时,该问题就是未完成状态。
  2. 对代码进行更改,从而签出在 Plastic 中出现的项。
  3. 当用户决定签入更改时,Plastic SCM 将显示一个新对话框,在其中可以将 Rally 任务与此新变更集链接起来:
  4. 用户可以通过以下选项之一来链接变更集和任务:
    • 添加新问题 - 单击添加新问题按钮打开一个新对话框。现在,用户可以选择一个或多个 Rally 对象来链接到变更集:
    • 输入注释井号标签 - 在签入注释文本框中输入注释,该注释应以“#”字符开头,后跟问题序号(还可以选择后跟冒号)。这将在相关问题中记录签入信息。例如,#DE5: Created report folder

一旦变更集已链接到 Rally 对象,其信息就会显示在变更集视图中,并且用户还可以添加 Rally 对象的新链接或删除以前的链接。此外,通过双击每个问题或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个包含 Rally 相关对象的 Web 浏览器窗口将会打开。每当用户从问题跟踪工具中修改缺陷、任务、测试用例或用户情景时,通过单击 Rally 扩展的刷新按钮即可加载他们的更改。

变更集视图在“变更集任务”模式下显示扩展信息


Polarion 集成

本节介绍使用 Plastic SCM Polarion Software Development 集成的步骤。

在 Windows、Linux 和 macOS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

Polarion - 配置

了解如何在服务器端客户端配置 Polarion 集成。

Polarion 服务器配置

要设置 Polarion 扩展功能,必须事先完成一些任务:

  1. 将 Plastic SCM 插件添加到 Polarion 中。为此,请执行以下步骤:
    1. 停止 Polarion 服务。
    2. com.codicesoftware.platform.repository.external.plasticscm 目录从 Plastic SCM 安装目录的 client/polarion 文件夹复制到 Polarion 扩展文件夹 [Polarion installation]/polarion/extensions
      问题跟踪程序扩展需要此插件才能在 Plastic SCM 中正常运行。
      之所以这样,是因为此插件允许通过以下方式将 Plastic SCM 修订(变更集)链接到 Polarion 工作项:手动将修订链接到工作项,或通过签入注释来链接工作项。
    3. 再次启动 Polarion 服务器。
  2. 然后,必须在 Polarion 服务器端创建一个 Plastic SCM 存储库:
    1. 转到 Polarion 中的“管理”选项:
      Polarion 服务器配置
    2. 然后单击“存储库”部分。
    3. 需要一个 Plastic SCM 存储库。因此,请单击“添加新的存储库”按钮:
      Polarion - 添加新的存储库
    4. 在存储库配置窗口中,输入在 Polarion 中创建新 Plastic 存储库所需的信息,其中包括:
      • ID - 此存储库在 Polarion 中的标识符(必填)。
      • 名称 - 要在 Polarion 中显示的存储库名称。
      • 存储库名称 - Plastic SCM 存储库的名称。
      • 服务器 - Plastic SCM 服务器。
      • Plastic Cm 可执行文件 - cm 可执行文件所在的路径(位于 Polarion 服务器端)。
        如果 Polarion 服务器端不存在 Plastic 安装,则可以将 Plastic client 文件夹复制到该服务器端上。这种情况下,在 cm 可执行文件所在的 client 文件夹中必须存在有效的 client.conf
      Polarion 存储库配置
    5. 添加信息后,单击“保存”按钮。

客户端配置

了解如何在 WindowsLinux 或 macOS 系统中配置 Polarion 集成。

客户端配置 - Windows

按照以下步骤在 Windows 机器的 Plastic SCM 客户端上配置 Polarion 扩展:

  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。
  2. 在新窗口中,单击问题跟踪程序选项卡。
  3. 单击绑定到此问题跟踪系统单选按钮。
  4. 选择 Polarion 跟踪系统。
  5. 现在,选择要将绑定应用于的存储库:
    • 如果要使用全局扩展配置,则选择 plastic-global-config 存储库。
    • 如果要使用问题跟踪程序绑定到所有存储库,请选择 Repositories
    • 如果要使用 codeBeamer 绑定到特定存储库,请选择该存储库。
    Plastic SCM 中的问题跟踪配置:Polarion
  6. 默认情况下会激活将问题绑定到 Plastic 分支选项以使用分支任务模式。
    要使用变更集任务模式,请选择将问题绑定到 Plastic 变更集选项。
  7. 现在,必须相应地配置 Polarion 参数(Polarion 服务器所在的 URL 地址、凭据、分支前缀等)。
    了解有关 Polarion 配置参数的更多信息。
客户端配置 - Linux 和 macOS 系统

可使用以下方法之一,在 Linux 或 macOS 机器的 Plastic SCM 客户端上配置 Polarion 扩展:

  • 在服务器中设置全局扩展配置。这样,默认情况下所有 Plastic 客户端都具有相同的 Polarion 设置。
  • 设置本地 Polarion 配置。为此,请执行以下操作:
    1. $HOME/.plastic4 下创建结构 issuetrackers/server_port/repository,其中 repository 是以下值之一:
      • 要链接到问题跟踪程序的存储库的名称。
      • allrepos,这意味着您的所有存储库都将链接到问题跟踪程序。
    2. polarion.conf 示例配置文件复制到新创建的路径中。
      可在以下位置找到此文件:
      • Window 或 Linux:plasticscm_install_path/client/extensions/config_samples
      • macOS:/Applications/PlasticSCM.app/Contents/IssueTrackerConfigSamples

      然后,您将获得类似以下的内容:

      • /home/pablo/.plastic4/issuetrackers/localhost_8087/info/polarion.conf
      • /home/pablo/.plastic4/issuetrackers/localhost_8087/allrepos/polarion.conf

    3. 编辑 polarion.conf 文件:
      1. 编辑 WorkingMode 参数以分配以下值之一:TaskOnBranchTaskOnChangeset
      2. 相应地配置其余的 Polarion 扩展参数(Polarion 服务器所在的 URL 地址、凭据、分支前缀等)。
        了解有关 Polarion 配置参数的更多信息。
    4. 编辑 client.conf 文件以添加以下键:
      <Extensions>
          <Extension AssemblyFile="plasticscm_install_path/client/extensions/polarion/polarionextension.dll" />
      </Extensions>
      
客户端配置 - 参数
  • Polarion Base URL:指定安装并运行 Polarion 服务器的 URL。
  • User namePassword:这些字段中必须填写有效的 Polarion 用户信息。
  • Branch prefix:如果要使用分支任务模式,建议指定此参数(但不是强制性的)。此分支前缀将用于把 Plastic 分支绑定到 Polarion 任务。
    例如,如果输入 scm 前缀,则名称以前缀 scm 开头的所有分支都将链接到 Polarion 问题。
  • Work Item Statuses:这些是使用从任务模式创建新分支时将显示在“待定任务”列表中的工作项类型。使用变更集任务模式链接新修订时,也将检查这些值。
    这些状态必须使用竖线 ("|") 字符分隔。
  • Open Work Item Status:如果用户使用从任务模式创建新分支并选中 Mark as open in issue tracker 选项,则 Polarion 任务将具有此处的新状态。
  • Repository ID:此参数与 Polarion 服务器端配置的“ID”字段相同。
  • Default Repository:此字段指示所选存储库是否为默认存储库。如果不选中此字段,那么您将支持多个存储库。

Polarion - 特征

分支任务工作模式

默认配置的工作模式是分支任务模式,非常适合与“任务分支”模式搭配使用。在这种工作模式下会为每个要完成的任务创建一个新分支。

为了开始使用 Plastic SCM 和 Polarion 扩展,必须在问题跟踪系统上创建任务,具体方法是创建与 Polarion 项目相关联的新工作项:

在 Polarion 中创建新的工作项

键入与新任务相关的数据,例如名称、描述、优先级等,然后单击“创建”按钮:

在 Polarion 中创建任务

Polarion 将为新创建的任务分配一个编号,该编号与处理该任务时分配给 Plastic 分支的编号相同:

在 Polarion 中创建的任务

然后,分配到该问题的开发者开始处理问题。他/她将使用 Plastic SCM GUI 客户端创建一个新分支。有两个选项可以创建链接到 Polarion 的新分支:

  • 手动:输入分支名称。请注意,新分支的名称必须与 Polarion 上的问题编号(在本例中为编号 84)相匹配,并在前面添加 scm 前缀(就像 Plastic SCM Polarion 扩展上配置的那样)。

    为任务创建一个新分支

  • 从任务:从 Polarion 中选择现有任务。

    为任务创建一个新分支

    在此模式下,用户将:

    • 在“待定任务”列表中查看与工作项状态字段中配置的状态相同的工作项;
    • 在已选择在问题跟踪程序中标记为未完成选项时,将 Polarion 任务状态更改为未完成工作项状态字段中配置的状态;

    正如您在客户端配置部分中看到的那样。

通过单击分支视图中的显示扩展信息按钮(显示扩展信息),与分支相关的信息将显示在 Plastic GUI 的右侧面板上。选择一个分支会在 Plastic SCM 中显示 Polarion 问题信息:

与分支关联的任务的详细信息

通过双击它或按下在浏览器中打开问题按钮(在浏览器中打开问题),系统将打开一个显示相关分支问题的新浏览器窗口,并显示 Polarion 任务的完整信息。

如果用户更改 Polarion 中的工作项的任何值,则通过单击 Polarion 扩展面板的刷新按钮即可在 Plastic 中显示新的信息。

变更集任务工作模式

要将 Plastic SCM 配置为在变更集任务工作模式下运行,用户必须配置 Polarion 扩展并选择将问题绑定到 Plastic 变更集选项,如前面客户端配置部分所述。

工作流程将如下所述:

  1. 在 Polarion 中创建任务。当开发者开始处理一个问题时,该问题就是未完成状态。
  2. 对代码进行更改,从而签出在 Plastic 中出现的项。
  3. 当用户决定签入更改时,Plastic SCM 将显示一个新对话框,在其中可以将 Polarion 任务与此新变更集链接起来:
  4. 用户可以通过以下选项之一来链接变更集和 Polarion 工作项:
    • 添加新问题 - 单击添加新问题按钮打开一个新对话框。现在,用户可以选择一项或多项任务来链接到变更集:
    • 输入注释井号标签 - 在签入注释文本框中输入注释,该注释应以“#”字符开头,后跟问题序号(还可以选择后跟冒号)。这将在相关问题中记录签入信息。例如,#IP-83: Fixed error when searching by name

在以下示例中,两个 Polarion 工作项链接到将要签入的更改:

“添加问题”对话框,在执行签入操作时将任务与变更集相关联

Polarion 扩展将检查要链接的工作项的状态。只允许链接在客户端配置的工作项状态字段中定义了状态的 Polarion 工作项。正如您之前所见,配置的工作项状态为草稿未完成状态。因此,不允许任何其他状态:

注意:如果您使用添加新问题按钮来链接 Polarion 工作项,则此检查当前有效。我们很快将在通过输入注释井号标签来链接工作项时实现相同的行为。

使用“变更集任务”工作模式时检查工作项状态

一旦变更集已链接到 Polarion 中的工作项,此信息就可以显示在 Plastic SCM 的变更集视图中。当扩展信息面板(显示扩展信息)可见时,通过单击某个变更集即可显示相关的 Polarion 工作项。

“变更集任务”工作模式下的变更集视图以及详细信息

用户还可以从 Polarion 扩展信息添加新任务或删除以前的任务。此外,通过双击与某个变更集相关的每个问题,一个新的浏览器窗口将会打开,其中显示所选的 Polarion 工作项。每当用户在任务跟踪工具中修改问题时,通过按 Polarion 扩展窗格上的刷新按钮即可在 Plastic GUI 上更新相应的新数据。

适用于分布式场景

Plastic SCM Polarion 集成支持分布式场景:链接的修订将使用变更集 GUID 而不是变更集 ID(整数)。

但是,在将变更集复制到 Polarion 中配置的 Plastic SCM 服务器之前,变更集信息(例如变更集注释)将不可用。

备注:
  • Plastic SCM Polarion 扩展(客户端)和 Polarion Plastic SCM 扩展(服务器端)应同时更新。
  • 此更新向后兼容,因此所有已使用变更集 ID 添加到 Polarion 的链接修订仍可供浏览。

签入操作记录

正如您所见,可以通过相关的分支或变更集在 Plastic 中获取所有 Polarion 工作项信息。此外,还可以在 Polarion 端获取与在 Plastic 中创建的修订相关的所有信息。这样,Polarion 集成会保留已修改项的记录:已在 Plastic 中签入更改且该集成处于活动状态后,Polarion 将使用分支任务模式在“已链接修订”部分中显示受影响的项:

Polarion 已链接修订 - 分支 - Plastic SCM 签入信息

或使用变更集任务工作模式:

Polarion 已链接修订 - 变更集 - Plastic SCM 签入信息

当 Plastic 修订正确链接到 Polarion 时,您将看到修订图标包含一个绿色项目符号:已链接修订图标


codeBeamer 集成

如果需要使用 Plastic SCM codeBeamer 集成,请按照本节中的步骤操作。


codeBeamer - 配置

了解如何在服务器端客户端配置 codeBeamer 集成。

codeBeamer 服务器配置

无需在服务器端对 Plastic SCM codeBeamer 扩展配置进行任何更改。

但如果想在 codeBeamer 配置中添加 Webhook 的机密令牌,请按照以下步骤操作:

  1. 转到 codeBeamer 的“系统管理”页面。
  2. 转到“应用程序配置”。
  3. 如果您的 json(json 根级别)中不存在 "scc" 节点,请添加该节点。
  4. 如果 json 中的 "scc" 节点下不存在 "plasticscm" 节点,请添加该节点。
  5. "plasticscm" 节点下添加 "secretToken" : "<secret_token_of_the_webhook>"
codeBeamer:添加机密令牌

codeBeamer 客户端配置

了解如何在 WindowsLinux 或 macOS 系统中配置 codeBeamer 集成。

客户端配置 - Windows

按照以下步骤在 Windows 机器的 Plastic SCM 客户端上配置 codeBeamer 扩展:

  1. 单击 Plastic SCM GUI 主窗口的首选项选项卡。
  2. 在新窗口中,单击问题跟踪程序选项卡。
  3. 单击绑定到此问题跟踪系统单选按钮。
  4. 选择 codeBeamer 跟踪系统。
  5. 现在,选择要将绑定应用于的存储库:
    • 如果要使用全局扩展配置,则选择 plastic-global-config 存储库。
    • 如果要使用问题跟踪程序绑定到所有存储库,请选择 Repositories
    • 如果要使用 codeBeamer 绑定到特定存储库,请选择该存储库。
    Plastic SCM 中的问题跟踪配置:codeBeamer
  6. 默认情况下会激活将问题绑定到 Plastic 分支选项以使用分支任务模式。
    要使用变更集任务模式,请选择将问题绑定到 Plastic 变更集选项。
  7. 现在,必须相应地配置 codeBeamer 参数(codeBeamer 服务器所在的 URL 地址、凭据、分支前缀等)。
    了解有关 codeBeamer 配置参数的更多信息。
客户端配置 - Linux 和 macOS 系统

可使用以下方法之一,在 Linux 或 macOS 机器的 Plastic SCM 客户端上配置 codeBeamer 扩展:

  • 在服务器中设置全局扩展配置。这样,默认情况下所有 Plastic 客户端都具有相同的 codeBeamer 设置。
  • 设置本地 codeBeamer 配置。为此,请执行以下操作:
    1. $HOME/.plastic4 下创建结构 issuetrackers/server_port/repository,其中 repository 是以下值之一:
      • 要链接到问题跟踪程序的存储库的名称。
      • allrepos,这意味着您的所有存储库都将链接到问题跟踪程序。
    2. codebeamer.conf 示例配置文件复制到新创建的路径中。
      可在以下位置找到此文件:
      • Window 或 Linux:plasticscm_install_path/client/extensions/config_samples
      • macOS:/Applications/PlasticSCM.app/Contents/IssueTrackerConfigSamples

      然后,您将获得类似以下的内容:

      • /home/pablo/.plastic4/issuetrackers/localhost_8087/info/codebeamer.conf
      • /home/pablo/.plastic4/issuetrackers/localhost_8087/allrepos/codebeamer.conf

    3. 编辑 codebeamer.conf 文件:
      1. 编辑 WorkingMode 参数以分配以下值之一:TaskOnBranchTaskOnChangeset
      2. 相应地配置其余的 codeBeamer 扩展参数(codeBeamer 服务器所在的 URL 地址、凭据、分支前缀等)。
        了解有关 codeBeamer 配置参数的更多信息。
    4. 编辑 client.conf 文件以添加以下键:
      <Extensions>
          <Extension AssemblyFile="plasticscm_install_path/client/extensions/codebeamer/codebeamerextension.dll" />
      </Extensions>
      
客户端配置 - 参数
  • codeBeamer URL:指定安装并运行 codeBeamer 服务器的 URL。
  • User namePassword:这些字段中必须填写有效的 codeBeamer 用户信息。
  • Branch prefix:如果要使用分支任务模式,建议指定此参数(但不是强制性的)。此分支前缀将用于把 Plastic 分支绑定到 codeBeamer 任务。
    例如,如果输入 scm 前缀,则名称以前缀 scm 开头的所有分支都将链接到 codeBeamer 问题。
  • Enable SCM log:如果您的 codeBeamer 版本支持外部 SCM 集成,请选中此复选框。
  • Secret token:如果您的 codeBeamer 服务器中配置了机密令牌,请输入该令牌值。

codeBeamer - 特征

在 Windows、Linux 和 mac OS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

分支任务工作模式

默认配置的工作模式是分支任务模式,非常适合与“任务分支”模式搭配使用。在这种工作模式下会为每个要完成的任务创建一个新分支。

要开始使用 Plastic SCM 及其 codeBeamer 扩展,必须在 codeBeamer 中创建项目的任务:

在 codeBeamer 中创建新任务

保存新任务后,codeBeamer 会为该任务指定一个标识号。此号码将供分配的开发者在创建 Plastic SCM 分支以处理该任务时使用:

codeBeamer 中的任务信息

然后,分配到该任务的开发者开始处理任务。他们将使用 Plastic SCM GUI 客户端创建一个新分支。有两个选项可以创建链接到 codeBeamer 的新分支:

  • 手动:输入分支名称。请注意,新分支的名称必须与 codeBeamer 上的任务编号(在本例中为编号 1129)相匹配,并在前面添加分支前缀(在本例中为 scm),就像 Plastic SCM codeBeamer 扩展上配置的那样:
  • 从任务:从 codeBeamer 中选择现有任务:

通过单击分支视图中的显示扩展信息按钮(显示扩展信息),与分支相关的信息将显示在 Plastic GUI 的右侧面板上。选择 Plastic 分支会显示 codeBeamer 任务信息:

与分支关联的任务的详细信息

通过双击任务或按下在浏览器中打开问题按钮(在浏览器中打开问题),系统将打开一个新的 Web 浏览器窗口,其中显示相关 codeBeamer 任务的完整信息。当用户更改任务的任何字段时,通过单击 codeBeamer 扩展面板的刷新按钮即可显示新的信息。

变更集任务工作模式

要将 Plastic SCM 配置为在变更集任务工作模式下运行,用户必须在配置 codeBeamer 扩展时选择将问题绑定到 Plastic 变更集选项,如前面客户端部分所述。

工作流程将如下所述:

  1. 在 codeBeamer 中创建任务。当开发者开始处理任务时,该任务就是未完成状态。
  2. 对代码进行更改,从而签出在 Plastic 中出现的项。
  3. 当用户决定签入更改时,Plastic SCM 会显示一个新对话框,在其中可以将 codeBeamer 任务与此新变更集链接起来:
  4. 用户随后通过以下选项之一来链接变更集和任务:
    • 添加新问题 - 单击添加新问题按钮打开一个新对话框。现在,用户可以选择一项或多项任务来链接到变更集:
    • 输入注释井号标签 - 在签入注释文本框中输入注释,该注释应以“#”字符开头,后跟问题序号(还可以选择后跟冒号)。这将在相关问题中记录签入信息。例如,#1129: Added the new structure to define waypoints

      通过输入注释井号标签来链接变更集

一旦变更集链接到 codeBeamer 中的任务,此信息就可以显示在 Plastic SCM 的变更集视图中。当扩展信息面板可见时(显示扩展信息),如果单击某个变更集,则 Plastic 将显示相关的 codeBeamer 任务:

“变更集任务”工作模式下的变更集视图以及详细信息

用户还可以从 codeBeamer 扩展窗格中添加新任务或删除以前的任务。此外,通过双击与某个变更集关联的每个任务或单击在浏览器中打开问题按钮(在浏览器中打开问题),一个新的 Web 浏览器窗口将会打开并显示所选的 codeBeamer 任务。每当用户在 codeBeamer 中修改任务时,通过按 codeBeamer 扩展窗格上的刷新按钮即可在 Plastic GUI 上更新相应的新数据。

签入操作记录

除了显示与 Plastic SCM 集成的分支及变更集关联的问题的信息外,此扩展还会在 codeBeamer 中记录链接到这些问题的每个签入操作。

如果使用的是低于 10.0 的 codeBeamer 版本,则应在客户端配置 codeBeamer 扩展时将 Enable SCM log 参数设置为 FALSE

这样就可以看到每个签入操作是如何在 codeBeamer 上注册的:

签入信息


全局扩展配置

可以在服务器中设置全局文件配置,以便所有客户端默认具有相同的设置。这对于设置默认全局参数(如连接字符串)并让用户指定其特定凭据很有用。

在服务器端创建全局配置后,当 Plastic GUI 启动时,服务器配置将下载到客户端。

这与配置全局文件配置时的行为相同。
在 Windows、Linux 和 macOS 系统中使用上一个 (<) 和下一个 (>) 箭头可查看屏幕截图。

创建全局存储库配置

要在服务器中设置全局配置,请创建一个名为 plastic-global-config 的存储库。此存储库将具有明确定义的结构,其中包含将应用于存储库并由 Plastic 用户使用的问题跟踪程序扩展的配置文件。

plastic-global-config 存储库将具有以下结构:

  • 特定存储库的全局配置:/repname/issuetrackers/extension_configuration_file.conf
    例如,/doomsrc/issuetrackers/jira.conf
  • 所有存储库的全局配置:/allrepos/issuetrackers/extension_configuration_file.conf
    例如,/allrepos/issuetrackers/bugzilla.conf
注意:对于子模块,应使用“-”字符而不是“/”:/myrepo-mysubrepo/issuetrackers/extension_configuration_file.conf
例如,/plugins-3dplugin/issuetrackers/jira.conf,其中 plugins 是主存储库,而 3dplugin 是子模块。

如何加载全局配置

plastic-global-config 存储库可以配置多个问题跟踪系统。Plastic 客户端将首先加载用户正在处理的存储库的特定配置。如果特定配置不存在,则将加载 allrepos 配置。

如何设置全局配置

要设置全局扩展配置,第一步是在服务器中创建 plastic-global-config 存储库(如果该存储库还不存在,因为先前创建该存储库只是为了设置全局文件配置):

创建 plastic-global-config 存储库

然后,该存储库必须具有前文所述的所需结构。在以下示例中,vb44 存储库将链接到 Bugzilla,而其余存储库将链接到 Jira:

在 Windows、Linux 和 macOS 系统中可使用上一个 (<) 和下一个 (>) 箭头查看该示例。
注意:问题跟踪程序配置示例文件包含在 plasticscm_install_path/client/extensions/config_samples 文件夹中。您必须添加并更新您需要的参数。

当客户端 GUI 启动时,每个服务器配置都会下载到用户本地目录下将会自动创建的隐藏工作区中(位于 plastic4 目录,即 Linux/Mac 系统上的 $HOME/.plastic4 下或 Windows 上的 C:\Users\user\AppData\Local\plastic4 下)。例如:C:\Users\user\AppData\Local\plastic4\globalconfig\server_port


自定义全局配置

如果需要,可以使用每个客户端使用的凭据对问题跟踪程序配置进行自定义。这样,当用户在 Plastic SCM 客户端的首选项对话框中打开问题跟踪选项卡时,系统将自动为链接的问题跟踪程序加载这些通用和全局值,用户只需输入凭据信息即可正确登录问题跟踪系统。

这些用户凭据将保存在用户本地目录中(位于 plastic4 目录(Linux/Mac 系统上的 $HOME/.plastic4 下或 Windows 上的 C:\Users\user\AppData\Local\plastic4 下))。例如:C:\Users\user\AppData\Local\plastic4\issuetrackers\server_port\repname\extension_configuration_file.conf


编写 Plastic SCM 自定义扩展

Plastic SCM 包括一些“开箱即用”的问题跟踪程序集成扩展,您可以使用它们连接最常用的问题跟踪和项目管理系统。

这些“开箱即用”的扩展使 Plastic SCM 能够显示有关链接到分支资源管理器变更集视图或分支视图中的分支(推荐)或变更集的任务信息。这样,如果为每个任务模式实现一个分支或将单个变更集链接到任务,您将始终可以立即获得来自问题跟踪程序的相关信息。

我们之所以创建了一种开发自定义“扩展”的方法,是因为与市场上存在的所有 ALM、问题跟踪程序和构建系统进行集成将是一项不可能完成的任务。我们设计了一种通用的问题跟踪程序连接接口,因此您可以为 Plastic SCM 编写您自己的自定义扩展!


要求

为了编写您自己的 Plastic SCM 自定义扩展,您需要在您的机器上安装 Visual Studio 和我们的 Plastic SCM 客户端。您只需要一个库来构建问题跟踪程序扩展:issuetrackerinterface.dll。如果您希望添加日志记录功能,您可以利用 Plastic SCM 使用的 log4net.dll


创建新的扩展

要创建新扩展,必须首先在 Visual Studio 中创建一个 Class Library 项目,并添加 issuetrackerinterface.dll 引用(如果愿意,还包括 log4net.dll)。

注意:请特别注意您的 Plastic SCM 客户端使用的 .NET Framework 版本。在 Plastic SCM 下载区域中,您将找到 .NET 2.0 和 .NET 4.0 标准版本。如果更希望使用 .NET 4.0 或更高版本,则需要下载兼容 .NET 4 的 Plastic SCM 版本。

除了 Visual Studio 中的 Class Library 项目外,您还需要实现两个不同的接口:

  • IPlasticIssueTrackerExtension:定义 Plastic SCM 的所有问题跟踪程序连接功能。
  • IPlasticIssueTrackerExtensionFactory:管理问题跟踪程序扩展配置和创建。

设置好 Class Library 和文件后,现在就可以开始使用 Plastic SCM。首先,添加一个名为 SampleExtension 的新类。此外,更改命名空间以将您的类放置到 Codice.Client.IssueTracker.SampleExtension 中:

namespace Codice.Client.IssueTracker.SampleExtension
{
    public class SampleExtension : IPlasticIssueTrackerExtension
    {
    }
}

首先,我们需要存储扩展配置。我们将通过类构造函数来做到这一点。我们将它的可见性设置为 internal,因为只有它的工厂需要知道如何创建这种对象。

public class SampleExtension : IPlasticIssueTrackerExtension
{
    IssueTrackerConfiguration mConfig;

    // If you want logging, this is the way to declare it
    // Don't forget to set log4net.dll as a reference!
    static readonly ILog mLog = LogManager.GetLogger("sampleextension");

    Internal SampleExtension(IssueTrackerConfiguration config)
    {
        mConfig = config; 

        mLog.Info("Sample issue tracker is initialized");
    } 
}

我们已经定义了如何创建问题跟踪程序扩展类,接下来我们可以构建它的工厂。为此,请添加一个新的 SampleExtensionFactory 类以实现 IPlasticIssueTrackerExtension 接口。您可能希望使用 Visual Studio 重构选项添加所有需要的方法;只需右键单击接口引用并选择“重构”>“实现接口”。此操作将为每个接口方法添加一个存根。开头如下所示:

namespace Codice.Client.IssueTracker.SampleExtension
{
    public class SampleExtensionFactory : IPlasticIssueTrackerExtensionFactory
    {
        public IssueTrackerConfiguration GetConfiguration(
            IssueTrackerConfiguration storedConfiguration)
        {
            throw new NotImplementedException();
        }

        public IPlasticIssueTrackerExtension GetIssueTrackerExtension(
            IssueTrackerConfiguration configuration)
        {
            throw new NotImplementedException();
        }

        public string GetIssueTrackerName()
        {
            throw new NotImplementedException();
        }
    }
}

最后两个方法很容易实现:

public IPlasticIssueTrackerExtension GetIssueTrackerExtension(
    IssueTrackerConfiguration configuration)
{
    return new SampleExtension(configuration);
}

public string GetIssueTrackerName()
{
    return "Sample Issue Tracker";
}

它们分别根据有效的配置和问题跟踪程序名称返回一个有效的问题跟踪程序扩展。然而,第一个有点复杂:它接收一个问题跟踪程序配置,并返回一个有效的配置。然后,我们需要定义我们需要的参数以及参数的默认值。

IssueTrackerConfiguration 类非常简单:它存储一个枚举 ExtensionWorkingMode 字段和一个 IssueTrackerConfigurationParameter 列表。

工作模式接受两个值:

  • TaskOnBranch:使用定义的分支前缀(我们将在后面讨论),任务会根据名称自动链接到分支。
  • TaskOnChangeset:任务手动链接到变更集。

配置参数将列在 Plastic SCM 首选项对话框的问题跟踪程序选项卡中。请参阅下面的配置扩展一节以了解更多信息。

我们将只定义两个参数:当前用户 ID 和 Plastic SCM 分支前缀。第一个参数将影响当前待定的任务结果,而第二个参数将告诉 Plastic 在猜测某个分支是否链接到问题跟踪程序任务时应该具有什么分支名称前缀。

基本上,每个参数包含 4 个属性:namevaluetypeIsGlobal。前两个顾名思义,就是两个字符串类属性。参数类型由枚举类型 IssueTrackerConfigurationParameterType 进行定义。此属性描述参数包含的内容:

  • Host:目标主机
  • User:要验证身份的用户名
  • Password:用于身份验证的密码
  • Label:要显示在配置面板上的文本
  • BranchPrefix:PlasticSCM 分支前缀
  • Text:一个简单的文本值,在配置面板上显示为文本框
  • Boolean:一个 true/false 值,在配置面板上显示为复选框

除了 HostUserPassword,可以定义任意数量的相同类型的参数。当扩展模式切换到 TaskOnChangeset 时,配置面板将禁用所有 BranchPrefix 条目。

最后,我们的 GetConfiguration 方法将如下所示:

public IssueTrackerConfiguration GetConfiguration(
    IssueTrackerConfiguration storedConfiguration)
{
    List<IssueTrackerConfigurationParameter> parameters
        = new List<IssueTrackerConfigurationParameter>();

    ExtensionWorkingMode workingMode = GetWorkingMode(storedConfiguration);

    string user = GetValidParameterValue(
        storedConfiguration, SampleExtension.USER_KEY, "1");

    string prefix = GetValidParameterValue(
        storedConfiguration, SampleExtension.BRANCH_PREFIX_KEY, "sample");

    IssueTrackerConfigurationParameter userIdParam =
        new IssueTrackerConfigurationParameter()
    {
        Name = SampleExtension.USER_KEY,
        Value = GetValidParameterValue(
            storedConfiguration, SampleExtension.USER_KEY, "1"),
        Type = IssueTrackerConfigurationParameterType.User,
        IsGlobal = false
    };
            
    IssueTrackerConfigurationParameter branchPrefixParam =
        new IssueTrackerConfigurationParameter()
    {
        Name = SampleExtension.BRANCH_PREFIX_KEY,
        Value = GetValidParameterValue(
            storedConfiguration, SampleExtension.BRANCH_PREFIX_KEY, "scm"),
        Type = IssueTrackerConfigurationParameterType.BranchPrefix,
        IsGlobal = true
    };

    parameters.Add(userIdParam);
    parameters.Add(branchPrefixParam);

    return new IssueTrackerConfiguration(workingMode, parameters);
}

ExtensionWorkingMode GetWorkingMode(IssueTrackerConfiguration config)
{
    if (config == null)
        return ExtensionWorkingMode.TaskOnBranch;

    if (config.WorkingMode == ExtensionWorkingMode.None)
        return ExtensionWorkingMode.TaskOnBranch;

    return config.WorkingMode;
}

string GetValidParameterValue(
    IssueTrackerConfiguration config, string paramName, string defaultValue)
{
    string configValue = (config != null) ? config.GetValue(paramName) : null;
    if (string.IsNullOrEmpty(configValue))
        return defaultValue;
    return configValue;
}

我们已经完成了我们的工厂!让我们回到 Extension 类。


实现扩展方法

下一步是实现所有接口方法。使用 Visual Studio 重构来添加所有接口方法:

public class SampleExtension : IPlasticIssueTrackerExtension
{
    public void Connect()
    {
        throw new NotImplementedException();
    }

    public void Disconnect()
    {
        throw new NotImplementedException();
    }

    public string GetExtensionName()
    {
        throw new NotImplementedException();
    }

    public List<PlasticTask> GetPendingTasks(string assignee)
    {
        throw new NotImplementedException();
    }

    public List<PlasticTask> GetPendingTasks()
    {
        throw new NotImplementedException();
    }

    public PlasticTask GetTaskForBranch(string fullBranchName)
    {
        throw new NotImplementedException();
    }

    public Dictionary<string, PlasticTask> GetTasksForBranches(List<string> fullBranchNames)
    {
        throw new NotImplementedException();
    }

    public List<PlasticTask> LoadTasks(List<string> taskIds)
    {
        throw new NotImplementedException();
    }

    public void LogCheckinResult(PlasticChangeset changeset, List<PlasticTask> tasks)
    {
        throw new NotImplementedException();
    }

    public void MarkTaskAsOpen(string taskId, string assignee)
    {
        throw new NotImplementedException();
    }

    public void OpenTaskExternally(string taskId)
    {
        throw new NotImplementedException();
    }

    public bool TestConnection(IssueTrackerConfiguration configuration)
    {
        throw new NotImplementedException();
    }

    public void UpdateLinkedTasksToChangeset(PlasticChangeset changeset, List<string> tasks)
    {
        throw new NotImplementedException();
    }
}

当然,您不需要实现所有方法。如果您不需要或不想提供某些功能,只需将方法主体留空或返回默认值即可。如果返回类型是集合类型,我们建议返回空集合而不是 null 对象。

每个方法的简要说明如下:

Connect
在此处写下任何需要的操作,从而准备您的扩展以连接到目标问题跟踪程序。
Disconnect
Connect 相反,它将包含释放连接到目标问题跟踪程序(会话等)所需的任何资源的代码。
GetExtensionName
返回一个可人工阅读的名称以显示在 Plastic SCM 视图中。
GetPendingTasks
返回问题跟踪系统中的待定任务列表。有两种方法重载:一种返回给定用户名的任务列表,另一种返回所有现有的待定任务。
GetTaskForBranch
返回与完整分支名称关联的任务(即显示完整的分支层次结构)。如果没有找到匹配的任务,结果可以是 null。
GetTasksForBranches
检索一组分支的任务信息。结果会将每个分支名称映射到其相关的任务信息。
LoadTasks
检索一组任务 ID 的问题跟踪程序任务信息。这些 ID 的格式由问题跟踪系统进行定义。
LogCheckinResult
将单个变更集的信息记录到关联任务列表中,作为参数传递。成功完成签入后调用此方法。
MarkTaskAsOpen
改变由 ID 定义的任务的状态(作为参数传递),如果问题跟踪系统支持该方法,则将分配的用户设置为引用的用户。
OpenTaskExternally
在外部浏览器中打开一个任务(作为 ID 传递)。
TestConnection
测试传递的配置是否可以成功建立与定义的问题跟踪程序之间的连接。
UpdateLinkedTasksToChangeset
对于支持该方法的问题跟踪系统,修改一组任务的 Plastic SCM 引用的变更集。

为了说明其中一些方法,我们将看到一些示例实现。任务内容将从 http://jsonplaceholder.typicode.com 上的示例 lorem ipsum Web 服务中检索。

GetExtensionName

好吧,这个真的很傻。我们只需要返回名称 we Plastic 以显示在其视图中。

public string GetExtensionName()
{
    return "My awesome extension";
}

GetTasksForBranches

当问题跟踪程序扩展配置为在 TaskOnBranch 模式下工作时,分支资源管理器使用此方法将绘制的分支映射到它们的关联任务。由于我们喜欢整洁的代码,我们已将此功能分解为多个方法以确保其易读性!

public Dictionary<string, PlasticTask> GetTasksForBranches(
    List<string> fullBranchNames)
{
    Dictionary<string, PlasticTask> result =
        new Dictionary<string, PlasticTask>();

    foreach(string fullBranchName in fullBranchNames)
    {
        string taskId = GetTaskIdFromBranchName(
            GetBranchName(fullBranchName));
        result.Add(fullBranchName, LoadSingleTask(taskId));
    }
    return result;
}

string GetBranchName(string fullBranchName)
{
    int lastSeparatorIndex = fullBranchName.LastIndexOf('/');

    if (lastSeparatorIndex <  0 )
        return fullBranchName;

    if (lastSeparatorIndex == fullBranchName.Length - 1)
        return string.Empty;

    return fullBranchName.Substring(lastSeparatorIndex + 1);
}

string GetTaskIdFromBranchName(string branchName)
{
    string prefix = mConfig.GetValue(BRANCH_PREFIX_KEY);
    if (string.IsNullOrEmpty(prefix))
        return branchName;

    if (!branchName.StartsWith(branchName) || branchName == prefix)
        return string.Empty;

    return branchName.Substring(prefix.Length);
}

const string POST_URL = "http://jsonplaceholder.typicode.com/posts/{0}";

PlasticTask LoadSingleTask(string taskId)
{
    if (string.IsNullOrEmpty(taskId))
        return null;

    string uri = string.Format(POST_URL, taskId);
    string resultJson = PerformJsonRequest(uri);

    return BuildTaskFromJson(
        JsonConvert.DeserializeObject<MyServiceData>(resultJson));
}

string PerformJsonRequest(string targetUri)
{
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(targetUri);

    try
    {
        using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
        using (StreamReader reader = new StreamReader(resp.GetResponseStream()))
        {
            return reader.ReadToEnd();
        }
    }
    catch(Exception e)
    {
        mLog.ErrorFormat(
            "Unable to perform request on URI {0}: {1}", targetUri, e.Message);
        mLog.DebugFormat(
            "Stack trace:{0}{1}", Environment.NewLine, e.StackTrace);
        return string.Empty;
    }
}

PlasticTask BuildTaskFromJson(MyServiceData jsonData)
{
    if (jsonData == null)
        return null;

    return new PlasticTask()
    {
        Id = jsonData.Id.ToString(),
        Owner = jsonData.UserId.ToString(),
        Title = jsonData.Title,
        Description = jsonData.Body,
        Status = "working"
    };
}

您会注意到此方法接收完整分支名称的列表(即名称包含它们的整个层次结构)。对于每一个分支名称,此方法会提取任务 ID 并向 jsonplaceholder 服务执行查询。

注意:JsonPlaceholder 是等效于 REST 服务的“lorem ipsum”生成器。您可以传递一个数值,它会返回一个带有一些示例字段的 JSON 对象。查询不带数字的 URL 将返回一个对象列表。您可以在 http://jsonplaceholder.typicode.com 中找到更多详细信息。

收到 JSON 响应后,您可以使用自己喜欢的 JSON 解析器将响应内容反序列化为有效的对象实例。在前面的示例中,我们使用了 Newtonsoft.Json

最后一步是构建一个 PlasticTask 实例,并使用 REST 服务返回的值来设置该实例的字段。处理完每个分支名称后,该方法会将映射作为一个 Dictionary<string, PlasticTask> 类返回。

OpenTask

在需要访问原始信息源时将使用 OpenTask 方法。例如,您有一个网站或第三方应用程序可能包含您需要的信息;在这些情况下,Plastic 问题跟踪程序扩展可以使用 OpenTask 方法为您显示这些数据。

public void OpenTaskExternally(string taskId)
{
    Process.Start(string.Format(
        "https://www.google.es/search?q={0}", taskId));
}

我们的示例实现非常简单:我们构建一个 URI 在 Google 上搜索任务编号,并使用 System.Diagnostics.Process 类在默认浏览器中打开任务。

当您需要在 Plastic SCM 和问题跟踪程序之间建立紧密集成时,OpenTask 方法非常有用。


SampleExtension 示例

参考先前的 GetTasksForBranches 代码示例,当您在 Plastic SCM 分支视图中选择以 sample 前缀开头的分支时,您将在右侧面板上看到详细信息:

分支视图 - 扩展详细信息

可以看到,右侧面板显示了通过 GetTasksForBranches 方法检索到的 PlasticTask 属性信息。

如果您将扩展配置为使用 TaskOnChangeset 工作模式,那么您将在右侧面板上看到三个按钮:

变更集视图 - 扩展详细信息

  • 变更集视图 - 扩展详细信息 - 按钮 第一个按钮会在浏览器中打开任务信息,就像我们先前在 OpenTask 方法中看到的那样。
  • 变更集视图 - 扩展详细信息 - 按钮 第二个按钮会将任务链接到所选变更集。单击此按钮后将显示一个对话框以选择要链接的任务。

    “添加问题”对话框

    此对话框中的打开问题按钮与我们先前讨论过的按钮相同。您可以将任意数量的问题链接到给定的变更集:

    关联问题和变更集

  • 变更集视图 - 扩展详细信息 - 按钮 第三个按钮会删除链接到当前所选变更集的所选问题。

TaskOnBranch 模式是一种使用分支名称和前缀来自动将问题链接到分支的自动机制,而 TaskOnChangeset 模式允许我们手动将问题信息关联到各个变更集。除了我们刚刚看到的变更集视图上的操作按钮之外,您还可以在签入时使用签入信息对话框添加此类链接:

“签入信息”对话框

我们关于问题跟踪程序的最新重要功能是从给定问题创建新分支。每当正确配置问题跟踪程序扩展后,创建分支对话框就将自动显示一组新控件,称为从任务模式。

创建分支

主要控件是一个待定任务列表,其中填充了 GetPendingTasks 方法返回的结果。默认情况下,仅显示分配给当前用户的那些任务(在配置面板中设置)。选中显示所有用户的待定任务控件将如复选框标题所述覆盖此约束。分支名称注释将自动设置,但稍后可以修改。

最后,选中在问题跟踪程序中标记为未完成将在成功创建分支后执行 MarkTaskAsOpen 方法。它应该会将所选问题的状态设置为打开正在进行或当前问题跟踪程序的等效状态。


调试

每次编写类库时,都会出现一个问题:轻松调试代码的最佳方法是什么?关于 Plastic SCM 扩展,解决方案很明确:只需在构建部分中修改类库属性,将 .dll.pdb 输出文件直接部署到 Plastic SCM 客户端目录中:

调试 - 构建部分

设置输出路径后,还可以配置 Visual Studio 以启动 Plastic SCM 客户端,并自动将调试器附加到生成的 plastic.exe 进程。这样,当 Plastic 与您的自定义扩展代码交互时,将自动触发您设置的断点。

调试 - 调试部分

注意:必须具备相应的权限才能将编译后的文件放置在 Plastic SCM 客户端目录中(通常位于 Program Files 下)。

配置扩展

为了让 Plastic 能够看到您的自定义扩展,我们需要编辑 Plastic SCM 客户端文件夹中的 customextensions.conf 文件。

# Each line defines a Plastic SCM extension with a name and a relative dll 
# path from client installation directory
# i.e: 
# My Custom Extension=extensions/mycustomextension/mycustomextension.dll
Sample Extension=SampleExtension.dll

在此配置步骤之后,可以打开首选项对话框并打开问题跟踪选项卡。我们会在此处的下拉列表中找到我们的扩展。进行选择后,主面板将显示配置扩展所需的控件:

首选项 - 问题跟踪程序对话框

通过单击应用确定按钮,Plastic 将能够与我们全新的扩展配合使用。


创建您自己的扩展

使用自定义问题跟踪程序扩展,您可以将任何问题跟踪程序与 Plastic SCM 集成。企业内部网、内部开发的问题跟踪系统等等,可能性无穷无尽。

通过该扩展,您可以开发您自己的代码以连接您自己的系统,还可以方便地将您的系统与 Plastic SCM 客户端进行集成;所有这些可能性为您提供了一个使用 Plastic SCM 以自定义 SCM 体验的绝佳机会。

如果您喜欢所看到的内容并且希望拥有此示例扩展的完整源代码,您可以查看我们的 GitHub 存储库


上次更新

2020 年 11 月 19 日
  • 我们添加了关于支持 Jira Next-gen 项目的注意事项。
  • 2020 年 4 月 29 日
  • 我们添加了关于 codeBeamer 集成的新章节。
  • 我们添加了 macOS 系统上的配置示例文件的位置。
  • 2020 年 3 月 10 日
  • 我们为 Jira Cloud 用户添加了与“接受远程 API 调用”选项相关的注意事项。
  • 2019 年 5 月 16 日
  • 我们更新了 Jira 配置以说明在使用 Atlassian Cloud 的情况下如何配置您的凭据
  • 2019 年 3 月 22 日
  • 我们替换了对已弃用的属性管理命令(如 cm makeattribute)的引用,改为新的对应命令。
  • 2018 年 11 月 21 日
  • 现在可以配置以下新的 Jira 扩展参数Use LDAP credentials if availableUse default proxy credentialsIssue types
  • 2018 年 5 月 18 日
    所有问题跟踪程序:
    • 现在可以通过注释井号标签将变更集与您的问题跟踪系统相关联。以“#”字符开头并后跟问题序号(还可以选择后跟冒号)的注释会将签入信息记录到相关问题中。只有问题跟踪程序扩展配置为“变更集任务”模式时,此行为才会生效。
    2017 年 9 月 27 日
  • 现在,Jira 扩展能够根据相关签入的注释来转换状态
  • 2017 年 6 月 14 日
    所有问题跟踪程序:
    • 问题跟踪程序客户端配置已更新:
      • 您可以选择存储库(或所有存储库)以链接到您的问题跟踪系统。
      • 了解如何在 Linux 或 macOS 系统上配置问题跟踪程序集成。
    • 我们添加了一些 Linux 和 macOS 屏幕截图以展示这些集成的外观。
    Axosoft:
    • 新参数:Pending status list - 现在可以配置被视为“待定”的 Axosoft 状态列表
    Polarion: Jira:
    2015 年 10 月 8 日
  • 添加了 Polarion 集成。
  • 2015 年 10 月 7 日
  • Jira 扩展现在支持新的 Rest API。字段映射文档已更新。
  • 2015 年 8 月 25 日
  • 不再将所有对分支前缀的引用都表述为“必须”。
  • 2015 年 6 月 12 日
  • 编写 Plastic SCM 自定义扩展一章已更新,现在包括新方法。
  • 2015 年 6 月 12 日
  • 全局扩展配置现在更易于配置。
  • 2015 年 2 月 26 日
  • 更新了 Axosoft 集成一章:与 Axosoft v14 的兼容性。
  • 2015 年 1 月 22 日
  • 了解如何编写 Plastic SCM 自定义扩展
  • 2015 年 1 月 8 日
  • 添加了 Jira 多项目配置