The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

TFS2010 如何設定警示與如何刪除「其他成員」的事件訂閱

在 Team Foundation Server 2010 ( TFS2010 ) 裡有個很常用的功能叫做 警示 (Alert),他可以在當你定義的事件發生時主動發 Email 通知你,像是變更集的通知,也就是當有人 Check-in 任何一個版本時就會主動發 Email 告知你變更的摘要,或是當有人更新了指派給你的工作時也可以設定主動發通知給你,不過當專案成員從 TFS 的特定專案裡移除後卻還不斷收到這些「事件通知訂閱」(也就是 警示 的意思)怎麼辦呢?而透過 Visual Studio 2010 也沒有地方可以幫你取消訂閱「別人的」訂閱項目,本文教你如何手動移除這些看不到的通知記錄。

首先,我先來介紹幾個設定「警示」(事件訂閱)的地方

1. 在 [Team 總管] 的 Team Foundation Server 的這個「根節點」按下滑鼠又鍵可選取 Alerts Explorer,這裡有比較多細部的警示設定! ( 此功能要安裝 Team Foundation Server Power Tools 才有 )

2. 你可以針對特定專案進行警示設定

3. 或者是在 Team Web Access 網站進行專案的警示設定 (此設定與上述第 2 點的介面一模一樣)

4. 你也可以設定在特定專案(或所有專案)原始碼變更時的發出警示郵件

不過,上述的種種警示設定介面會跟的登入者一起連動,也就是你看不出來到底有多少專案成員設定的警示訂閱,只看的到自己設定過的,因此你無法幫其他專案成員取消警示設定。如果成員之前已經設定過警示郵件通知,但目前已經離開此專案不想再收到通知要怎麼辦呢?這時就要靠系統管理者直接進入 SQL Server 資料庫查詢所有訂閱紀錄了。

我們先開啟 Management Studio 並切換到你的 TFS 資料庫,如果你的專案集合為 DefaultCollection 的話,那麼你的專案資料庫就會叫做 [Tfs_DefaultCollection],然後輸入以下 T-SQL 查詢目前整個專案集合中有多少事件訂閱。

SELECT *
FROM [dbo].[tbl_EventSubscription]
ORDER BY [EventType]

這時你就可以列出所有人的訂閱狀況,其中的 Address 欄位就是訂閱的 Email 地址,你只要手動將特定人的訂閱資料刪除掉即可。

但如果我只想幫特定人在特定專案下的警示刪除的話,就必須查看 Expression 欄位(這裡記錄的是查詢條件),或判斷 Classification 欄位中的文字進行判斷。

只要這裡的資料被刪除,這些被刪除的 Email 就不會再收到任何訂閱通知了。

相關連結