[軟體工程][TFS] 修改TFS內建程序樣版

有時候,因為專案或是組織中不同的需求,得要針對TFS提供的預設程序樣版進行一些修改,才能讓專案或是團隊合作的流程進行的比較順利,這次就來介紹要怎麼修改內定的程序樣版。

有時候,因為專案或是組織中不同的需求,得要針對TFS提供的預設程序樣版進行一些修改,才能讓專案或是團隊合作的流程進行的比較順利,這次就來介紹要怎麼修改內定的程序樣版。

首先打開VisaulStudio2010,使用TeamExplorer,在TFS Server的節點上按下滑鼠右鍵 -> 點選Team Project Collection Settings -> Process Template Manager

image

在接下來出現的對話視窗點選要修改的樣版,並按下Download鈕,將樣版儲存到其他地方(為了方便示範,我將樣版儲存到桌面)。

image

接著關閉對話視窗後,到輸出的地方看一看,會發現輸出的資料夾結構如下:

image

每個資料夾裡都有一到數個的xml檔,而這些xml檔案就是描述流程中特定物件或行為的檔案,再來介紹要修改這些xml檔的方法,讓我們以Groups and Permissions為例,假如說我想幫專案的程序中加入一個新的群組,用來做Code Review的工作,可以透過兩個方式完成。

方法一 - 直接開啟GroupsandPermissions.xml檔,在裡面加入該群組的設定:

GroupsandPermissions.xml

<?xml version="1.0" encoding="utf-8"?>
<tasks>
  <task id="GroupCreation1" name="Create Groups and Permissions" plugin="Microsoft.ProjectCreationWizard.Groups" completionMessage="Groups and Permissions created.">
    <taskXml>
      <groups>
        <group name="Readers" description="Members of this group have access to the team project.">
          <permissions>
            <permission name="GENERIC_READ" class="PROJECT" allow="true" />
            <permission name="VIEW_TEST_RESULTS" class="PROJECT" allow="true" />
            <permission name="GENERIC_READ" class="CSS_NODE" allow="true" />
            <permission name="WORK_ITEM_READ" class="CSS_NODE" allow="true" />
          </permissions>
        </group>
        <group name="Contributors" description="Members of this group can add, modify, and delete items within the team project.">
          <permissions>
            <permission name="GENERIC_READ" class="PROJECT" allow="true" />
            <permission name="DELETE_TEST_RESULTS" class="PROJECT" allow="true" />
            <permission name="PUBLISH_TEST_RESULTS" class="PROJECT" allow="true" />
            <permission name="VIEW_TEST_RESULTS" class="PROJECT" allow="true" />
            <permission name="GENERIC_READ" class="CSS_NODE" allow="true" />
            <permission name="WORK_ITEM_READ" class="CSS_NODE" allow="true" />
            <permission name="WORK_ITEM_WRITE" class="CSS_NODE" allow="true" />
            <permission name="MANAGE_TEST_PLANS" class="CSS_NODE" allow="true" />
            <permission name="MANAGE_TEST_ENVIRONMENTS" class="PROJECT" allow="true" />
            <permission name="MANAGE_TEST_CONFIGURATIONS" class="PROJECT" allow="true" />
          </permissions>
        </group>
        <group name="Builders" description="Members of this group can create, modify and delete build definitions and manage queued and completed builds.">
          <permissions>
            <permission name="GENERIC_READ" class="PROJECT" allow="true" />
            <permission name="DELETE_TEST_RESULTS" class="PROJECT" allow="true" />
            <permission name="PUBLISH_TEST_RESULTS" class="PROJECT" allow="true" />
            <permission name="VIEW_TEST_RESULTS" class="PROJECT" allow="true" />
            <permission name="GENERIC_READ" class="CSS_NODE" allow="true" />
            <permission name="WORK_ITEM_READ" class="CSS_NODE" allow="true" />
            <permission name="WORK_ITEM_WRITE" class="CSS_NODE" allow="true" />
            <permission name="MANAGE_TEST_PLANS" class="CSS_NODE" allow="true" />
            <permission name="MANAGE_TEST_ENVIRONMENTS" class="PROJECT" allow="true" />
            <permission name="MANAGE_TEST_CONFIGURATIONS" class="PROJECT" allow="true" />
          </permissions>
        </group>
        <group name="Code Reviewers" description="Members of this group can set the status of 'Code Review' type workitem to 'Approved'">
          <permissions>
            <permission name="GENERIC_READ" class="PROJECT" allow="true" />
            <permission name="PUBLISH_TEST_RESULTS" class="PROJECT" allow="true" />
            <permission name="GENERIC_READ" class="CSS_NODE" allow="true" />
            <permission name="WORK_ITEM_READ" class="CSS_NODE" allow="true" />
            <permission name="WORK_ITEM_WRITE" class="CSS_NODE" allow="true" />
            <permission name="START_BUILD" class="PROJECT" allow="true" />
          </permissions>
        </group>
      </groups>
    </taskXml>
  </task>
</tasks>

方法二 - 直接以VisualStudio 2010開啟ProcessTemplate.xml檔,使用GUI介面直接編輯(使用GUI的優點是它會自動去修改相對應的xml檔,不用一個一個開來改):

image image

改完內容存檔之前,別忘了給程序樣版一個新的名稱,才不會跟原來的搞混喔!!

image

要修改的檔案都改完並存檔之後,一樣使用VisualStudio 2010的Process Template Manager,改用Upload鈕選取修改完畢的資料夾將程序樣版匯入,就大功告成啦!!

image

雖然這次只介紹了Group & Permission的修改,但是從GUI的畫面可以看到,能改的項目其實蠻多的,不過修改方式就都大同小異,各位有興趣的話就請自行探索啦!!

如果需要更詳盡的程序樣版修改及介紹,可以參考:Process Template Modification in Visual Studio Team System一文。