﻿# 如何設定 TortoiseSVN v1.7 整合既有的 Bug Tracker 系統

三年多前分享過【[如何設定 TortoiseSVN 整合 Bug Tracker 系統](/post/2008/09/02/TortoiseSVN-Integration-with-Bug-Tracking-Systems-Issue-Trackers.aspx)】文章，如今 [TortoiseSVN](http://tortoisesvn.net/) 也更新了很多次，目前最新版的設定介面跟舊版已經不太一樣，而且設定過程也變的複雜一些，想說還是有必要記錄一下設定的過程，否則設定時可能還是會卡住，以下是設定 [TortoiseSVN](http://tortoisesvn.net/) 結合現有 [Mantis Bug Tracker](http://www.mantisbt.org/) 的心得筆記。

首先，我們先來看看設定完成之後 [TortoiseSVN](http://tortoisesvn.net/) 的 Commit 視窗會變成什麼樣，如下圖示，每次在簽入版本的時候都可以讓你輸入一個「問題編號」，這裡的編號可以設定只能輸入數字或任意文字，且欄位的提示文字可以自訂：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/9d63d0fbe054bb032a14-SNAGHTML12d2edca.png)

如果開發人員在簽入資料時沒有輸入「問題編號」，在**簽入**時還會提示你要輸入**議題編號** (Issue Number)，但這只是提醒開發人員記得要輸入而已，還蠻貼心的，若你真的不需要輸入議題編號還是可以強制簽入，點選 **Proceed without an issue number** 按鈕即可。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/ab251d7da9e5b176a6de-SNAGHTML12add2da.png)

簽入過後，當你開啟顯示記錄功能時，也可以看到每次簽入的版本也附帶了當初輸入的問題編號，你可以透過此欄位進行排序，快速找到特定問題編號版本的修改記錄！

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/31e6eeee9ecb30010860-SNAGHTML12d18029.png)

以上這些就是套用 Bug Tracker 整合後的 [TortoiseSVN](http://tortoisesvn.net/) 相關介面，接下來我就要來講解如何設定了！

1\. 開**啟檔案總**管到 **SVN 工作目錄**的**根目錄**，並設定**此目錄**的 **SVN 屬性(Properties)**，如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/0d16c721d7326093e4f6-image_1427.png)

2\. 在屬性視窗新增一個屬性，並選取 **Bugtraq (Issue tracker integration)**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/fd36e38a34f3973c214e-image_1428.png)

開啟後的視窗如下，我們可能會需要填寫的欄位如下：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/9779759c794548ee7afd-SNAGHTML12e1e552.png)

3\. 首先要輸入的是 **URL** 欄位，由於我們公司裡常用的 Bug Tracker 系統是 [Mantis Bug Tracker](http://www.mantisbt.org/)，這套用來管理某些專案的需求、議題與錯誤追蹤，當你開啟該網站的某個議題時可以看到一個問題編號，而且該網址上也有個編號。如下圖示，其編號是 **46**，且網址列上也有包含此編號，因此我們可以先把該頁面的網址複製下來，然後將網址列上的 **46** 替換成 **%BUGID%**  變數，例如你的網址是 http://svn.example.com/view.php?id=46 ，那麼你的 URL 參數就可以輸入 **http://svn.example.com/view.php?id=%BUGID%**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/3ea5a2123a227ce26af1-image_1429.png)

4\. 再來 **Remind me to enter a bug-ID** 勾選項目我建議勾選，這樣可以提醒開發人員每次簽入都應該先建立問題，以便後續專案控管與需求回溯。

5\. 接下來的 **Message pattern** 指的是當你簽入一個新版本且有輸入問題編號時，是否要額外記錄一段訊息到版本記錄訊息(log message)中，向我會在記錄訊息中加上完整網址，方便在追蹤版本時直接點擊連結開啟網頁，以下是訊息範例：（注意：網址部分還是可以插入 **%BUGID%** 變數）

【 關於本次完整的問題描述請參見 MantisBT 問題: https://svn.example.com/view.php?id=%BUGID% 】

6\. 關於 **Message label** 就是在 commit 視窗提示你輸入**問題編號**的欄位標題，你如果不輸入的話在介面上還是會出現提示標題 (如下圖示)，但我習慣把他改成中文的提示文字，例如：**MantisBT問題編號**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/8860eb5809082ae7be0f-SNAGHTML12edefdd.png)

7\. 最後兩個選項可以不修改，除非你的 Bug Tracker 系統的 Bug-ID 不是「數字」而是「GUID」的話，那麼你就可以調整選項為 **Arbitrary text** (任意文字)，這樣你才能輸入非數字的 Bug-ID。而 **Insert message at** 代表當 commit 成功後，其 **Message pattern** 所設定的文字範本是否要插入到原本 Log Message 的最後面或最前面。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/b630807a184a4fc6b065-image_1430.png)

**相關連結**

-   [Mantis Bug Tracker](http://www.mantisbt.org/)
-   [Integration with Bug Tracking Systems / Issue Trackers](http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-bugtracker.html)
-   [与 BUG 跟踪系统/问题跟踪集成](http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/tsvn-dug-bugtracker.html)
-   [如何設定 TortoiseSVN 整合 Bug Tracker 系統](/post/2008/09/02/TortoiseSVN-Integration-with-Bug-Tracking-Systems-Issue-Trackers.aspx)
