VSTS強制刪除死鎖項

前兩天公司的源代碼管理從基於文件模式的Visual Source Safe遷移到了Team Foundation Server 2010 Beta 2,當然,客戶端還都是基於Visual Studio 2008的,畢竟2010還處於Beta階段,用於實際項目還是有風險的。

在剛開始使用的時候,早晨了有些文件的死鎖(應該屬於VSTS的一些問題),但是VSTS並沒有提供像VSS一樣的界面話的操作,比如使用管理員身份登錄後直接解除鎖定,大概是基於每一個用戶都會有一個Workspace的緣故吧。

由於VSTS是基於數據庫存儲的,因此,直接幹掉數據庫中的數據應該是解決的最直接辦法。

大體的解決步驟如下:

1、連接到TFS的數據庫服務器,一般情況下每一個Project都會有一個單獨的數據庫,找到tfsversioncontrol庫;

2、查找tbl_workspace表,找出相應的工作目錄,比如 select * from tbl_workspace where workspacename=’用戶名’,這裏有可能會出現一個用戶對應多個的問題,原因是同一用戶在不同的機器上如果有登錄的話,那麼VSTS會給這個用戶單獨的Workspace名稱,因此也會出現多個;這裏可以直接刪掉多餘的或者無效的,然後這裏記錄一下搜到的關於workspaceid;

3、利用上一步查到的workspaceid在tbl_pendingchange表中找到尚未簽入的項,如: select * from tbl_pendingchange where workspaceid=’workspaceid’,然後將這些內容全部幹掉;

4、檢查一下tbl_lock表中有沒有被鎖定的數據,並全部幹掉。

這個問題大概在所有的VSTS,不僅僅是2010 Beta中,貌似這個圖形化的操作一直沒有得到實現,簡單的方法可以寫一個單獨的管理程序,原理無非就是查找相關數據庫中是否有相關的數據然後刪除就可以。相信在用戶體驗上有很大提高的VSTS新產品,會在RC中解決這個問題。

發佈了14 篇原創文章 · 獲贊 5 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章