TFS (Team Foundation Server),一個讓人又愛又恨的工具,愛的是有完整 ALM 功能,可以使用工作項目追蹤 bugs, tasks, scenarios, test cases, …,恨的是版本控管工具實在太難用,雖然已經有 Team Foundation Server Power Tools 可以整合檔案總管 (Windows Shell Extensions) 進行版本控管操作,不過其 可用性 (Usability) 還是遠不如 TortoiseSVN 來的貼近人性,對熟悉 Subversion / TortoiseSVN 的我來說,使用 TortoiseSVN 進行 TFS 版本控管與版本審查是來的親切且熟悉的,因此我安裝了 SvnBridge Server 幫我實現利用 TortoiseSVN 進行 TFS 版本控管的願望。
多年前我曾經寫過一篇【如何透過 TortoiseSVN 存取 CodePlex 網站上的專案】文章,當時 SvnBridge 才剛推出,至今 SvnBridge 已經發展到了第6個版本,算已經非常穩定了,而且區分成 SvnBridge Client 與 SvnBridge Server 兩種版本,當初寫的文章就是現在的 SvnBridge Client 版本,讓你指定 TFS 的路徑並模擬一台 Subversion Server 在本地端。
如果要在公司內部所架設的 TFS 能夠直接從伺服器端直接提供 SvnBridge 的功能,就必須架設 SvnBridge Server 起來,以下就是架設的方式。
1. 下載 SvnBridge Server 至安裝 TFS 的那台伺服器
2. 解壓縮 SvnBridge-Server.zip 至任意目錄(也可以安裝至 C:\Inetpub\SvnBridge 目錄下)
以我個人的習慣,我會先利用 XCOPY 複製 c:\inetpub\wwwroot 目錄成為 c:\inetpub\SvnBridge 目錄
xcopy /O /X /K /E c:\inetpub\wwwroot SvnBridge\
注意:我的 c:\inetpub\wwwroot 是 Windows 預設的 wwwroot 安裝目錄,內容通常不太會去動他,這個目錄的預設 ACL 是很安全的 (除非你自己調動過),所以若要避免自行建立目錄有權限問題,我會直接複製這個目錄為新的網站目錄,並且把該目錄的內容清空,再把要部署的檔案複製進去。
安裝好之後的示意圖如下,基本上只會有一個 web.config 與 bin\SvnBridgeServer.dll 兩個檔案而已:
如果你所安裝的伺服器跟 TFS 是同壹台的話,基本上什麼都不用設定就能用了。
3. 新增一個 IIS 站台,並設定適當的驗證方式
新增站台時我們指定 SvnBridge 慣用的 8081 連接埠,你也可以切換成其他埠號。
請注意:如果你有啟動 Windows 防火牆的話,記得要設定將 Port 8081 開放網路存取限制。
設定該站台的驗證方式
請注意:你必須啟用 ASP.NET 模擬 與 摘要式驗證 就好,其他的驗證方式必須全部設定停用。
設定完成!
接著我們用 TortoiseSVN 就可以直接透過這個站台的進行所有版本控管操作,假設我們以 Checkout 為例
你只要能夠正常瀏覽專案,就代表你已經可以使用 TortoiseSVN 瀏覽所有 TFS 上的專案了!
不過,這套 SvnBridge Server 的預設安裝只會自動對應出 DefaultCollection 這個 Team 專案集合,如果你有其他專案集合的話,則必須安裝另一個 SvnBridge Server 並且修改 Web.config 設定檔,指定非預設的 Team 專案集合的方式可以參考以下圖示,畫紅線的地方就是你要加上 Team 專案集合名稱的地方:
在 Web.config 中另一個要注意的是 LogPath 必須設定一個可以記錄 Logs 的實體路徑。
後記
最近在網路上看到兩篇 TFS v.s. SVN 的比較文章,文章 1 是一個熟悉 SVN 的人最近改用 TFS 而寫的比較文,文章 2 則是一個微軟 ALM MVP ( 非常熟悉 TFS ) 提出的比較觀點,蠻有趣的,有興趣的人可以去看看。
相關連結