任務和議題追蹤系統指南


簡介

本指南說明 Plastic SCM 如何提供與各種控制追蹤工具的整合:Bugzilla、Mantis、Trac、Jira、Axosoft、VersionOne、FogBugz、Rally、Polarion 和 codeBeamer。

透過本指南,您也會瞭解如何撰寫自己的 Plastic SCM 自訂擴充功能

議題追蹤系統設定完成後,使用者將能順暢地使用此擴充功能和 Plastic SCM。這表示使用者將能透過 Plastic GUI 查看相關聯的任務資訊。

Plastic SCM 擴充功能允許兩種不同的工作模式:

  • 分支上的任務 - 此模式會將一個任務從議題追蹤系統連結至一個 Plastic 分支,而且允許在顯示完整資訊的議題追蹤工具上瀏覽相關聯的議題。
  • 變更集上的任務 - 此模式會將一或多個任務連結至一或多個 Plastic 變更集,並且從 Plastic 變更集檢視取得相關聯任務的資訊。

Bugzilla 整合

本節說明搭配使用 Bugzilla 整合與 Plastic SCM 時所需遵循的步驟。

使用 [上一步] (<) 和 [下一步] (>) 箭頭,查看 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_por/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 任務 #12

Bugzilla - 特性

[分支上的任務] 工作模式

透過此工作模式,所有 Bugzilla 任務都會在建立新分支時與 Plastic 分支相關聯。新分支的分支名稱必須符合 Bugzilla 上已設定的擴充功能前置詞 (若已設定) 和數字識別碼。

[分支] 檢視中按一下 [顯示擴充資訊] 按鈕 (顯示擴充資訊),與分支相關聯的資訊就會顯示在 Plastic GUI 的右側面板。藉由選取分支,Bugzilla 任務資訊就會顯示在 Plastic SCM 中:編號或識別碼、任務擁有者、狀態、標題和描述。

分支擴充資訊

只要按兩下任務窗格或按一下 [在瀏覽器中開啟議題] 按鈕 (在瀏覽器中開啟議題),新瀏覽器視窗將隨即開啟,且將在 Bugzilla 中顯示任務的完整資訊:

Bugzilla Web 介面範例

強制任務存在

您可以設定 Plastic SCM 儲存庫,以便針對 Bugzilla 檢查與任務相關聯的編號分支。只有在 Bugzilla 中有已定義的錯誤編號的情況下,才會允許工作分支。系統會針對分支建立作業執行此檢查 (僅限下層分支)。

為了設定儲存庫上的分支建立檢查,請在所需的儲存庫上建立名為 plastic-enforce-task-branch 的屬性。此屬性必須透過下列其中一種方法建立:

  • 使用命令列執行下列命令: cm attribute create plastic-enforce-task-branch
  • 使用 Plastic SCM GUI 中的 [屬性] 檢視:

    Plastic 強制 Bugzilla 任務存在

建立此屬性後,每次要在定義的儲存庫上建立下層分支時,擴充功能就會檢查新分支的名稱。如果名稱開頭為任務前置詞,則會挑選其中包含的編號,並詢問 Bugzilla 是否有相符的錯誤編號。否則,就會列印錯誤並取消作業:

嘗試建立不含對應任務的分支

[變更集上的任務] 工作模式

若要將 Plastic SCM 設定為以 [變更集上的任務] 工作模式運作,使用者必須設定 Bugzilla 擴充功能,並選取 [將議題繫結至 Plastic 變更集] 選項,如先前的用戶端一節所述。

此工作流程將類似下列內容:

  1. 在 Bugzilla 中建立議題。當開發者開始使用一個議題時,該議題就會開啟。
  2. 由於是在程式碼上做變更,因此簽出 Plastic 中顯示的項目。
  3. 當使用者決定簽入變更時,Plastic SCM 會顯示新的對話方塊,其中 Bugzilla 任務可與此新變更集連結:
  4. 使用者可按照下列其中一個選項來連結變更集和任務:
    • 新增議題 - 按一下 [新增議題] 按鈕以開啟新的對話方塊。現在,使用者能夠選擇一或多個任務連結至變更集:
    • 輸入註解雜湊標記 - 使用 '#' 字元,並在後面加上議題金鑰 (並選擇在後面加上冒號) 以開始輸入註解,藉以在 [簽入註解] 文字方塊中輸入註解。這會將簽入資訊記錄在相關議題中。例如,#9:已編輯使用者介面

變更集一旦連結至 Bugzilla 中的任務,此資訊就可以顯示在 Plastic SCM [變更集] 檢視中。當 [擴充資訊] 面板為可見狀態時 (顯示擴充資訊),如果按一下變更集,Plastic 就會顯示相關聯的 Bugzilla 任務:

變更集檢視在 [變更集上的任務] 模式下運作時提供詳細資訊

使用者也可以從 [Bugzilla 擴充功能] 窗格中新增任務或刪除先前的任務。此外,只要按兩下與特定變更集相關聯的每個任務,或按一下 [在瀏覽器中開啟議題] 按鈕 ( 在瀏覽器中開啟議題 ),新的網頁瀏覽器視窗就會開啟,並顯示選取的 Bugzilla 任務。每當使用者在 Bugzilla 中修改任務,只要按下 [Bugzilla 擴充功能] 窗格上的 [重新整理] 按鈕,就會在 Plastic GUI 上更新資料。


Mantis 整合

本節說明搭配使用 Mantis 整合與 Plastic SCM 時所需遵循的步驟,也會說明其優點。

此擴充功能與 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_por/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 任務 #22
  • Encoding:UTF-8 為預設值,適用於大多數語言。如果您需要變更編碼,請編輯此值。

Mantis - 特性

[分支上的任務] 工作模式

[分支上的任務] 是依預設所設定的工作模式,適合與 [每個任務的分支] 模式搭配使用。在此工作模式下,會針對每個要完成的任務建立新分支。

和往常一樣,第一個步驟是在 Mantis 中建立議題,這通常是由專案經理負責處理。做法是按一下 [回報議題] 選項,對話方塊就會開啟,其中包含需處理之新議題的資訊,而要包含的資訊為標題、描述、嚴重性等。

建立新議題的 Mantis 使用者介面

建立議題時,Mantis 會指派編號給該議題。在此案例中,Mantis 已將編號 4 指派給該任務,如下圖所示。使用者可以從議題清單 (根據其狀態以不同的顏色顯示) 選取議題並變更其狀態,因此議題 4 會從 [新增] 變更為 [已指派]

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:已編輯常數

變更集一旦連結至 Mantis 中的議題或任務,此資訊就可以顯示在 Plastic SCM [變更集] 檢視中。當 [擴充資訊] 面板為可見狀態時 (顯示擴充資訊),如果按一下變更集,Plastic 就會顯示相關聯的 Mantis 任務:

[變更集上的任務] 工作模式中的變更集擴充資訊

使用者也可以從 [Mantis 擴充功能] 窗格中新增任務或刪除先前的任務。此外,只要按兩下與特定變更集相關聯的每個任務,或按一下 [在瀏覽器中開啟議題] 按鈕 ( 在瀏覽器中開啟議題 ),新的網頁瀏覽器視窗就會開啟,並顯示選取的 Mantis 任務。每當使用者在 Mantis 中修改任務,只要按下 [Mantis 擴充功能] 窗格上的 [重新整理] 按鈕,就會在 Plastic GUI 上更新資料。


Trac 整合

本節說明搭配使用 Trac 整合與 Plastic SCM 時所需遵循的步驟。也會說明其優點。

此擴充功能與 Trac 0.10 以上的版本相容。

使用 [上一步] (<) 和 [下一步] (>) 箭頭,查看 Windows、Linux 和 macOS 中的螢幕擷取畫面。

Trac - 設定

在本章中,您將瞭解如何在伺服器用戶端中設定 Trac 整合。

Trac 伺服器設定

若要設定 Trac 擴充功能,必須將 XMLRPC 外掛程式安裝至 Trac 伺服器中。此連結提供有關如何下載、安裝和驗證已正確設定的資訊。

使用 Trac 管理工具,啟用將使用擴充功能的使用者的 XML_RPC 權限。如果此權限已指派給「匿名」使用者,則表示可供所有使用者使用。

Trac 伺服器設定

使用 Trac 擴充功能時,必須將多項伺服器設定功能納入考量:

  • 如果使用的驗證方法為「基本」(啟動 tracd 時的選項 --basic-auth),其表示以使用者/密碼為主的驗證模式,存取 XMLRPC 服務的 URL 格式為:http://{trac_server}/{trac_project_name}/login/xmlrpc
  • 如果已使用其他任何驗證方法設定 Trac 伺服器,Plastic SCM 擴充功能便無法繼續執行使用者驗證。在此案例中,匿名使用者必須啟用 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_por/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:已更新值

變更集一旦連結至 Trac 中的票證或任務,此資訊就可以顯示在 Plastic SCM [變更集] 檢視中。當 [擴充資訊] 面板為可見狀態時 (顯示擴充資訊),如果按一下變更集,Plastic 就會顯示相關聯的 Trac 任務:

變更集檢視在 [變更集上的任務] 模式下提供詳細資訊

使用者也可以從 [Trac 擴充功能] 窗格中新增任務或刪除先前的任務。此外,只要按兩下與特定變更集相關聯的每個任務,或按一下 [在瀏覽器中開啟議題] 按鈕 ( 在瀏覽器中開啟議題 ),新的網頁瀏覽器視窗就會開啟,並顯示選取的 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. 最後一個步驟是確保 Jira 的遠端 API 可供 Plastic 存取。
    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_por/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。
    此參數為選用。若未在組態設定中設定,Plastic SCM 將不會記錄與簽入 Jira 相關議題相關的任何資訊。使用者仍可在從 Jira 議題建立分支時從 Jira 整合中獲益,或可從分支瀏覽器瀏覽 Jira 議題中獲益。
    新一代專案的重要資訊

    新一代專案不支援此欄位。
    Custom Field ID 留白,以讓簽入資訊新增為註解。

  • Use LDAP credentials if available:如果 Plastic SCM 用戶端驗證模式為 LDAP,則可將 Jira 擴充功能設定為透過檢查此參數以重複使用這些認證來登入 Jira。請記住,Plastic SCM 伺服器和 Jira 兩者必須共用同一個 LDAP 使用者目錄,此功能才能正常運作。
  • Use default proxy credentials:使用所有 Jira 擴充功能連線的預設認證,以自動設定 Proxy 認證。
  • Issue query limit:此參數可用來手動調整 [建立分支] 對話方塊中的傳回結果數上限。
    其預設值為 50,而且可設定為任何正數。
  • Resolved issue states:保留視為 [已解決] 之狀態名稱的逗號分隔清單。
    預設值為 [完成],因此 [建立分支] 對話方塊的任務清單中在預設情況下不顯示具有 [完成] 狀態的任何議題。
  • Issue types:可讓您篩選 Jira 擴充功能依其類型擷取的議題。只要輸入以逗號分隔的議題類型清單即可。這是很實用的功能,舉例來說,如果您只想要在 Plastic SCM 中查看「錯誤」「任務」議題,便可以篩選掉其餘的類型。
    如果使用的是 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:已更新值

變更集一旦連結至 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 (表單產生器),則為 JIRA_FG-1

Plastic SCM 多專案 brex


欄位對應

Jira 擴充功能允許從 Jira 議題對應欄位,這將顯示於 Plastic SCM 中 [分支][變更集] 檢視的任務資訊面板上。

若要定義 Jira 欄位對應功能,則必須設定參數 [欄位對應]。若要這樣做,請按一下 Plastic SCM GUI 主視窗的 [偏好設定] 索引標籤,以開啟 Jira 擴充功能設定。然後,按下 [議題追蹤] 索引標籤。向下捲動參數清單,直到 [欄位對應] 設定參數出現為止:

欄位對應設定

它會儲存欄位名稱組 (從 -> 至),並以「|」 (分隔號) 字元分隔。參數語法為:

[ 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 議題描述。

「從 -> 至」組中的 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] (含括號),議題狀態將變更為 [可開始 QA]

此功能可用於將議題繫結至分支和變更集。

請注意,您的 Jira 工作流程必須允許在不同的狀態之間進行轉換。

這不需要設定 Plastic SCM 自訂欄位 ID 即可使用。

狀態轉換設定

閱讀有關如何在 WindowsLinux 或 macOS 系統上設定狀態轉換功能的詳細資訊。

狀態轉換設定 - Windows
  1. 按一下 Plastic SCM GUI 主視窗的 [偏好設定] 索引標籤。然後,按一下 [議題追蹤器] 索引標籤。Jira 擴充功能設定隨即開啟。
  2. 移至 [狀態轉換] 欄位,並輸入所需的 KEY-VALUE 組。
狀態轉換設定 - Linux 和 macOS 系統
  1. 開啟 jira.conf 檔案。
  2. 請新增下列這行,並使用所需的 KEY-VALUE 組取代 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 擴充功能,您必須將 Axosoft 伺服器基底 URL 提供給 Plastic SCM。

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 - 建立自訂欄位

在新視窗的 [錯誤] 索引標籤底下,按一下 [新增] 按鈕,然後輸入 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_por/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 中建立新缺陷

在 [新增錯誤] 視窗上,必須填寫新任務名稱、優先順序、狀態、指派的工程師等資訊。儲存新缺陷後,Axosoft 會提供此新缺陷一個識別碼,以便讓指派的開發者在建立 Plastic SCM 分支時使用該識別碼來處理該任務。

OnTime 中新缺陷的缺陷資訊

然後,已指派給該議題的開發者會開始處理該議題,透過 Plastic SCM GUI 用戶端建立新分支。請注意,新分支的名稱必須符合 Plastic SCM Axosoft 擴充功能的已設定分支前置詞 (若已定義),後面加上 Axosoft 指派的議題編號,才能進行連結。

按一下 [分支] 檢視上的 [顯示擴充資訊] 按鈕 (顯示擴充資訊),與分支相關聯的資訊就會顯示在 GUI 的右側,如下列螢幕擷取畫面所示。選取分支時,將會顯示 Axosoft 缺陷的詳細資訊:名稱、擁有者、狀態、標題和描述。

[分支上的任務] 模式中的分支詳細資訊

藉由按兩下或按下 [在瀏覽器中開啟議題] 按鈕 (在瀏覽器中開啟議題),會開啟具有相關聯分支任務的新網頁瀏覽器視窗,並且會顯示 Axosoft 任務的完整資訊。當使用者變更議題的狀態或其他任何欄位時,按一下 Axosoft 擴充功能的 [重新整理] 按鈕就會顯示新資訊。

[變更集上的任務] 工作模式

若要將 Plastic SCM 設定為以 [變更集上的任務] 工作模式運作,使用者必須設定 Axosoft 擴充功能,並選取 [將議題繫結至 Plastic 變更集] 選項,如先前的用戶端一節所述。

此工作流程將類似下列內容:

  1. 在 Axosoft 中建立議題。當開發者開始使用一個議題時,該議題就會開啟。
  2. 由於是在程式碼上做變更,因此簽出 Plastic 中顯示的項目。
  3. 當使用者決定簽入變更時,Plastic SCM 會顯示新的對話方塊,其中 Axosoft 議題可與此新變更集連結:
  4. 使用者可按照下列其中一個選項來連結變更集和任務:
    • 新增議題 - 按一下 [新增議題] 按鈕以開啟新的對話方塊。現在,使用者能夠選擇一或多個任務來連結至變更集:
    • 輸入註解雜湊標記 - 使用 '#' 字元,並在後面加上議題金鑰 (並選擇在後面加上冒號) 以開始輸入註解,藉以在 [簽入註解] 文字方塊中輸入註解。這會將簽入資訊記錄在相關議題中。例如,#def3:已包含編碼模式

變更集一旦連結至 Axosoft 缺陷或任務,擴充功能資訊 (顯示擴充資訊) 就會顯示在 [變更集] 檢視上。使用者也可以透過 Axosoft 擴充功能窗格新增任務或刪除先前任務,而且只要按兩下每個議題或按一下 [在瀏覽器中開啟議題] 按鈕 (在瀏覽器中開啟議題),具有相關聯 Axosoft 議題的網頁瀏覽器視窗就會開啟。每當使用者在任務追蹤工具中修改議題,只要按下 [Axosoft 擴充功能] 窗格上的 [重新整理] 按鈕,就會在 Plastic GUI 上更新資料。

[變更集上的任務] 工作模式中的變更集詳細檢視

已簽入的作業記錄

除了顯示與 Plastic SCM 整合之分支和變更集相關聯議題的相關資訊,此擴充功能還會每次完成相關聯議題簽入時在 Axosoft 中記錄。

這樣使用者就可以查看每個簽入作業在 Axosoft 任務上註冊的情況:

Plastic SCM 產生的簽入資訊


VersionOne 整合

本節說明搭配使用 VersionOne 整合與 Plastic SCM 時所需遵循的步驟。

此擴充功能與 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_por/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 擴充功能資訊:任務編號、擁有者、狀態等。

[分支上的任務] 模式中的詳細分支資訊

在與分支相關聯的任務上按兩下,或按一下 [在瀏覽器中開啟議題] 按鈕 (在瀏覽器中開啟議題),新的網頁瀏覽器視窗就會開啟。當使用者變更議題的狀態或其他任何欄位時,可藉由重新整理 VersionOne 擴充功能來顯示新資訊。

[變更集上的任務] 工作模式

若要將 Plastic SCM 設定為以 [變更集上的任務] 工作模式運作,使用者必須設定 VersionOne 擴充功能,並選取 [將議題繫結至 Plastic 變更集] 選項,如先前的用戶端一節所述。

此工作流程將類似下列內容:

  1. 在 VersionOne 中建立議題。當開發者開始使用一個議題時,該議題就會開啟。
  2. 由於是在程式碼上做變更,因此簽出 Plastic 中顯示的項目。
  3. 當使用者決定簽入變更時,Plastic SCM 會顯示新的對話方塊,其中 VersionOne 缺陷/任務/測試/案例可與此新變更集連結:
  4. 使用者可按照下列其中一個選項來連結變更集和 VersionOne 議題:
    • 新增議題 - 按一下 [新增議題] 按鈕以開啟新的對話方塊。現在,使用者能夠選擇一或多個任務來連結至變更集:
    • 輸入註解雜湊標記 - 使用 '#' 字元,並在後面加上議題金鑰 (並選擇在後面加上冒號) 以開始輸入註解,藉以在 [簽入註解] 文字方塊中輸入註解。這會將簽入資訊記錄在相關議題中。例如,#D-01002:已新增搜尋功能

變更集一旦連結至 VersionOne 任務,擴充功能資訊 (顯示擴充資訊) 會顯示在 [變更集] 檢視上。使用者也可以從 VersionOne 擴充功能資訊新增任務或刪除先前的任務。此外,藉由按兩下與特定變更集相關聯的每個議題,或按一下 [在瀏覽器中開啟議題] 按鈕 ( 在瀏覽器中開啟議題 ),具有 VersionOne 的瀏覽器就會開啟。每當使用者重新整理 VersionOne 擴充功能資訊以在 VersionOne 中修改議題,該議題就會顯示在 Plastic SCM 中。

變更集檢視在 [變更集上的任務] 模式下提供詳細資訊


FogBugz 整合

本節說明搭配使用 FogBugz 整合與 Plastic SCM 時所需遵循的步驟。

此擴充功能與 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_por/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 擴充功能資訊:任務編號、擁有者等。

分支檢視以 [分支上的任務] 模式中顯示擴充資訊

藉由按兩下或按一下 [在瀏覽器中開啟議題] 按鈕 (在瀏覽器中開啟議題),新的網頁瀏覽器視窗就會開啟。它會顯示 FogBugz 任務的完整資訊。當使用者變更議題的狀態或其他任何欄位時,只要按一下 FogBugz 擴充功能的 [重新整理] 按鈕,就會顯示新資訊。

[變更集上的任務] 工作模式

若要將 Plastic SCM 設定為以 [變更集上的任務] 工作模式運作,使用者必須設定 FogBugz 擴充功能,並選取 [將議題繫結至 Plastic 變更集] 選項,如先前的用戶端一節所述。

此工作流程將類似下列內容:

  1. 在 FogBugz 中建立議題。當開發者開始使用一個議題時,該議題就會開啟。
  2. 由於是在程式碼上做變更,因此簽出 Plastic 中顯示的項目。
  3. 當使用者決定簽入變更時,Plastic SCM 會顯示新的對話方塊,其中 FogBugz 任務可與此新變更集連結:
  4. 使用者可按照下列其中一個選項來連結變更集和 FogBugz 議題:
    • 新增議題 - 按一下 [新增議題] 按鈕以開啟新的對話方塊。現在,使用者能夠選擇一或多個議題來連結至變更集:
    • 輸入註解雜湊標記 - 使用 '#' 字元,並在後面加上議題金鑰 (並選擇在後面加上冒號) 以開始輸入註解,藉以在 [簽入註解] 文字方塊中輸入註解。這會將簽入資訊記錄在相關議題中。例如,#4:已修正登入

一旦變更集已連結至 FogBugz 中的議題或任務,擴充功能資訊 (顯示擴充資訊) 就會顯示在 [變更集] 檢視畫面上。使用者也可以從 FogBugz 擴充功能資訊中新增任務或刪除先前的任務。此外,藉由按兩下與特定變更集相關聯的每個議題,或按一下 [在瀏覽器中開啟議題] 按鈕 ( 在瀏覽器中開啟議題 ),具有 FogBugz 的瀏覽器將會開啟。每當使用者透過重新整理 FogBugz 擴充功能資訊以在 FogBugz 中修改議題時,該議題就會顯示在 Plastic 中。

變更集檢視以 [變更集上的任務] 模式顯示詳細資訊

已簽入的作業記錄

除了顯示與 Plastic SCM 整合之分支和變更集相關聯議題的相關資訊,此擴充功能還會在每次完成相關聯議題簽入時在 FogBugz 中記錄,前提是已勾選 [用戶端] 區段上的 [啟用簽入記錄] 核取方塊。

這樣使用者就能透過按選 [簽入 - 按一下以列出] 連結,查看每個簽入作業在 FogBugz 任務上註冊的情況:

Plastic SCM 產生的簽入資訊


Rally 整合

本節說明使用 Plastic SCM Rally 軟體開發整合時所需遵循的步驟。

使用 [上一步] (<) 和 [下一步] (>) 箭頭,查看 Windows、Linux 和 macOS 中的螢幕擷取畫面。

Rally - 設定

在本章中,您將瞭解如何在伺服器用戶端中設定 Rally 整合。

Rally 伺服器設定

需要具備有效的 Rally 帳戶,才能設定 Rally 擴充功能。不需要在伺服器端或本機設定中執行任何操作,因為 Rally 是 Web 服務,對 Rally 的所有變更都是透過網際網路完成。

用戶端設定

閱讀有關如何在 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_por/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 物件的詳細資訊:

分支檢視以 [分支上的任務] 工作模式顯示詳細資訊

藉由按兩下或按一下 [在瀏覽器中開啟議題] 按鈕 (在瀏覽器中開啟議題),具有相關聯分支任務的網頁瀏覽器視窗就會開啟。每當使用者完成任務並變更其狀態或其他任何欄位時,使用者只需在 Plastic 分支擴充資訊上重新整理,即可檢視新值。

[變更集上的任務] 工作模式

若要將 Plastic SCM 設定為以 [變更集上的任務] 工作模式運作,使用者必須設定 Rally 擴充功能,並選取 [將議題繫結至 Plastic 變更集] 選項,如先前的用戶端一節所述。

此工作流程將類似下列內容:

  1. 在 Rally 中建立議題。當開發者開始使用一個議題時,該議題就會開啟。
  2. 由於是在程式碼上做變更,因此簽出 Plastic 中顯示的項目。
  3. 當使用者決定簽入變更時,Plastic SCM 會顯示新的對話方塊,其中 Rally 任務可與此新變更集連結:
  4. 使用者可按照下列其中一個選項來連結變更集和任務:
    • 新增議題 - 按一下 [新增議題] 按鈕以開啟新的對話方塊。現在,使用者能夠選擇一或多個 Rally 物件來連結至變更集:
    • 輸入註解雜湊標記 - 使用 '#' 字元,並在後面加上議題金鑰 (並選擇在後面加上冒號) 以開始輸入註解,藉以在 [簽入註解] 文字方塊中輸入註解。這會將簽入資訊記錄在相關議題中。例如,#DE5:已建立報告資料夾

一旦變更集已連結至 Rally 物件,將會從 [變更集] 檢視畫面顯示其資訊,而使用者也可以將新連結加入至 Rally 物件,或刪除先前的連結。此外,在每個議題上按兩下,或按一下 [在瀏覽器中開啟議題] 按鈕 (在瀏覽器中開啟議題), Rally 中具有相關聯物件的網頁瀏覽器視窗就會開啟。每當使用者從議題追蹤工具修改缺陷、任務、測試案例或使用者案例,只要按一下 Rally 擴充功能的 [重新整理] 按鈕,就會載入其變更。

變更集檢視以 [變更集上的任務] 模式顯示擴充資訊


Polarion 整合

本節說明使用 Plastic SCM Polarion 軟體開發整合時所需遵循的步驟。

使用 [上一步] (<) 和 [下一步] (>) 箭頭,查看 Windows、Linux 和 macOS 中的螢幕擷取畫面。

Polarion - 設定

瞭解如何在伺服器用戶端中設定 Polarion 整合。

Polarion 伺服器設定

為了設定 Polarion 擴充功能,已執行某些任務:

  1. 將 Plastic SCM 外掛程式加入 Polarion 中。若要執行此操作,請按照下列步驟進行:
    1. 停止 Polarion 服務。
    2. 從 Plastic SCM 安裝目錄的 client/polarion 資料夾將目錄 com.codicesoftware.platform.repository.external.plasticscm 複製到 [Polarion installation]/polarion/extensions 的 Polarion 擴充功能資料夾。
      議題追蹤器擴充功能需要此外掛程式,才能在 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 資料夾。在此案例中,有效的 client.conf 必須位於 cm 可執行檔所在位置的這個 client 資料夾中。
      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_por/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 的右側面板。藉由選取分支,Polarion 議題資訊就會顯示在 Plastic SCM 中:

與分支相關聯之任務的詳細資訊

藉由按兩下或按下 [在瀏覽器中開啟議題] 按鈕 (在瀏覽器中開啟議題),會開啟顯示相關聯分支議題的新瀏覽器視窗,並且會顯示 Polarion 任務的完整資訊。

如果使用者在 Polarion 中變更工作項目的任何值,那麼只要按一下 [Polarion 擴充功能] 面板的[重新整理] 按鈕,就會在 Plastic 中顯示新資訊。

[變更集上的任務] 工作模式

若要將 Plastic SCM 設定為以 [變更集上的任務] 工作模式運作,使用者必須設定 Polarion 擴充功能,並選取 [將議題繫結至 Plastic 變更集] 選項,如先前的用戶端設定一節所述。

此工作流程將類似下列內容:

  1. 在 Polarion 中建立任務。當開發者開始使用一個議題時,該議題就會開啟。
  2. 由於是在程式碼上做變更,因此簽出 Plastic 中顯示的項目。
  3. 當使用者決定簽入變更時,Plastic SCM 會顯示新的對話方塊,其中 Polarion 任務可與此新變更集連結:
  4. 使用者可以按照下列其中一個選項來連結變更集和 Polarion 工作項目:
    • 新增議題 - 按一下 [新增議題] 按鈕以開啟新的對話方塊。現在,使用者能夠選擇一或多個任務來連結至變更集:
    • 輸入註解雜湊標記 - 使用 '#' 字元,並在後面加上議題金鑰 (並選擇在後面加上冒號) 以開始輸入註解,藉以在 [簽入註解] 文字方塊中輸入註解。這會將簽入資訊記錄在相關議題中。例如,#IP-83:在依名稱搜尋時修正錯誤

在下列範例中,兩個 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 擴充功能設定的伺服器端進行任何變更。

但如果您想要將 Webhook 的秘密權杖新增至 codeBeamer 設定,請按照下列步驟進行:

  1. 移至 codeBeamer 的 [系統管理] 頁面。
  2. 移至 [應用程式設定]。
  3. 如果 "scc" 節點不存在於 json (json 根層級) 中,請新增。
  4. 如果 "plasticscm" 節點不存在於 "scc" 節點底下的 json 中,請新增。
  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_por/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 任務資訊:

與分支相關聯之任務的詳細資訊

藉由按兩下任務或按下 [在瀏覽器中開啟議題] 按鈕 (在瀏覽器中開啟議題),會開啟新的網頁瀏覽器視窗,顯示相關 codeBeamer 任務的完整資訊。當使用者變更任務的任何欄位時,按一下 codeBeamer 擴充功能面板的 [重新整理] 按鈕就會顯示新資訊。

[變更集上的任務] 工作模式

若要將 Plastic SCM 設定為以 [變更集上的任務] 工作模式運作,使用者必須在設定 codeBeamer 擴充功能時選取 [將議題繫結至 Plastic 變更集] 選項,如先前的用戶端一節所述。

此工作流程將類似下列內容:

  1. 在 codeBeamer 中建立任務。當開發者開始處理任務時,任務就會開啟。
  2. 由於是在程式碼上做變更,因此簽出 Plastic 中顯示的項目。
  3. 當使用者決定簽入變更時,Plastic SCM 會顯示新的對話方塊,其中 codeBeamer 任務可與此新變更集連結:
  4. 接著,使用者可按照下列其中一個選項來連結變更集和任務:
    • 新增議題 - 按一下 [新增議題] 按鈕以開啟新的對話方塊。現在,使用者能夠選擇一或多個任務來連結至變更集:
    • 輸入註解雜湊標記 - 使用 '#' 字元,並在後面加上議題金鑰 (並選擇在後面加上冒號) 以開始輸入註解,藉以在 [簽入註解] 文字方塊中輸入註解。這會將簽入資訊記錄在相關議題中。例如,#1129:新增結構以定義定位點

      輸入註解雜湊標記以連結變更集

變更集一旦連結至 codeBeamer 中的任務,此資訊就可以顯示在 Plastic SCM [變更集] 檢視中。當 [擴充資訊] 面板為可見狀態時 (顯示擴充資訊),如果按一下變更集,Plastic 就會顯示相關聯的 codeBeamer 任務:

變更集檢視在 [變更集上的任務] 工作模式下提供詳細資訊

使用者也可以從 [codeBeamer 擴充功能] 窗格新增任務或刪除先前的任務。此外,只要按兩下與特定變更集相關聯的每個任務,或按一下 [在瀏覽器中開啟議題] 按鈕 ( 在瀏覽器中開啟議題 ),新的網頁瀏覽器視窗就會開啟,並顯示選取的 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\使用者\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 撰寫自己的自訂擴充功能!


要求

您需要在機器上安裝 Visual Studio 和 Plastic SCM 用戶端,才能撰寫您自己的 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 或更新版本,將需要下載 Plastic SCM .NET 4 相容版本。

除了 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");
    } 
}

現在,我們已定義如何建立議題追蹤器擴充功能類別,我們可以建置其處理站。為此,請新增實作 IPlasticIssueTrackerExtension 介面的 SampleExtensionFactory 類別。您可能會想要使用 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。它會描述參數包含的內容:

  • 主機:目標主機
  • 使用者:要驗證的使用者名稱
  • 密碼:要驗證的密碼
  • 標籤:只是顯示在設定面板上的文字
  • 分支前置詞:PlasticSCM 分支前置詞
  • 文字:簡單文字值,在設定面板上繪製為文字方塊
  • 布林值:true/false 值,在設定面板上繪製為核取方塊

可定義設定為相同類型的任意數量參數,但主機使用者密碼除外。當擴充功能模式切換為 TaskOnChangeset 時,設定面板會停用所有分支前置詞項目。

最後,我們的 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();
    }
}

當然,您不需要實作所有方法。如果有某個您不需要或不想提供的功能,只要將方法主體留白或傳回預設值即可。如果傳回類型為集合類型,建議您傳回空白集合,而不是空物件。

這是每個方法的簡短描述:

Connect
在這裡編寫任何所需的動作,準備好您的擴充功能以連線至目標議題追蹤器。
Disconnect
Connect 相反,該功能會包含程式碼以釋放任何所需的資源來連線至目標議題追蹤器 (工作階段等)。
GetExtensionName
傳回人類看得懂的名稱,以顯示在 Plastic SCM 檢視畫面上。
GetPendingTasks
傳回議題追蹤器系統中的待處理任務清單。有兩個方法過載,一個傳回指定使用者名稱的任務清單,另一個傳回所有現有待處理任務。
GetTaskForBranch
傳回與完整分支名稱相關聯的任務 (亦即顯示完整分支階層)。如果找不到相符的任務,結果可為空。
GetTasksForBranches
擷取分支清單的任務資訊。結果會將每個分支名稱對應至其相關的任務資訊。
LoadTasks
擷取任務 ID 清單的議題追蹤器任務資訊。這些 ID 的格式是由議題追蹤器系統所定義。
LogCheckinResult
將單一變更集的資訊記錄至相關聯的任務清單中,以參數形式傳遞。成功完成簽入後,會呼叫此方法。
MarkTaskAsOpen
更改 ID 定義的任務狀態 (以參數形式傳遞),並且在議題追蹤器系統支援的情況下,將指派的使用者設定為參照的使用者。
OpenTaskExternally
在外部瀏覽器中開啟任務 (以 ID 形式傳遞)。
TestConnection
測試傳遞的設定是否可以成功建立與所定義之議題追蹤器的連線。
UpdateLinkedTasksToChangeset
針對可提供支援的議題追蹤器系統,修改任務清單的 Plastic SCM 參照變更集。

為了以圖解方式說明其中一些方法,我們來看看一些實作範例。任務內容將會從 http://jsonplaceholder.typicode.com 的範例 lorem ipsum Web 服務擷取。

GetExtensionName

這個真的不理想。我們只需傳回名稱 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 [分支] 檢視上選取以範例前置詞做為開頭的分支時,您將在右側面板上看到詳細資訊:

[分支] 檢視 - 擴充功能詳細資料

如您所見,右側面板會顯示使用 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 新一代專案的附註。
  • 2020 年 4 月 29 日
  • 我們新增了一個有關 codeBeamer 整合的新章節。
  • 我們加入了 macOS 系統上設定範例檔案的位置。
  • 2020 年 3 月 10 日
  • 我們加入了與 [接受遠端 API 呼叫] 選項有關的 Jira Cloud 使用者的附註。
  • 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 多專案設定