2010-11-03 51 views
4

我試圖在兩個分支之間使用tf.exe執行無基本的合併。TFS聲明文件被鎖定,即使它們不是 - 孤兒鎖

當我運行命令,它將失敗並告訴我,由其他用戶鎖定有15-20文件。我查看了其他用戶的未決更改,並且他只在目標分支中籤出了三個文件,並且它們都沒有被鎖定。

有沒有人遇到過類似於此之前?

編輯

與Robaticus的幫助下,我發現鎖在tbl_lock表,但他們不存在與相關未決的改變了。它看起來像有多個孤立的鎖,而不是那些給我們當前合併問題的鎖。

有誰知道是什麼原因導致這些或將它們固定不涉及直接接觸DB的一種方式?我打算做一點研究,看看能否找到任何東西。

編輯2

首先谷歌搜索「TFS孤兒鎖」返回此:Orphaned locks in TFS

的TFS團隊建議直接從表中刪除他們,所以我想我得做。

我沒有看到說明它尚未固定的任何職位。

回答

4

您可能想要檢查它們是否被鎖定在廢棄的工作區中。爲此,請安裝TFS Power Tools (October edition) for TFS 2008。然後,您可以在源代碼資源管理器中右鍵單擊一個文件夾,並在「在源代碼管理中查找」。使用「狀態...」,您可以找到該用戶鎖定的所有文件。

如果您有管理權限,你可以選擇任何鎖定的文件刪除鎖定。

*編輯:危險的代碼提前*

下面的代碼可以對TFSVersionControl數據庫中執行。這會顯示所有被鎖定的文件。這可能會告訴你,如果你有一個孤立的文件在那裏。

我不建議您進行該數據庫中的任何改變,並且,當然,始終確保你有你的資料庫的最新備份你曾經做這樣的事情之前。

select 
    lck.FullPath, 
    wspc.WorkSpaceName, 
    id.DisplayName 
from tbl_lock lck 
inner join tbl_workspace wspc on wspc.WorkSpaceId = lck.WorkSpaceId 
inner join tbl_identity id on id.IdentityId = wspc.OwnerId 
+0

是的,我應該提到我使用電動工具,我是管理員。這傢伙沒有在我能找到的任何工作區中檢出。它所抱怨的文件是文件夾和一些以前從trunk到他的項目分支合併的DLL。 – 2010-11-03 20:03:14

+0

然後,您可能需要查看TFSVersionControl數據庫。看到我上面的編輯。 – Robaticus 2010-11-04 12:49:10

+0

是的,那些文件肯定是孤兒。我會試着檢查文件,然後撤消它。也許這將清除表中的記錄。 – 2010-11-04 14:22:40

2

您是否使用Attrice Sidekicks來調查此問題。這是圍繞TFS命令行工具的一個不錯的UI。

+0

沒有運氣,鎖也沒有顯示在這裏。 – 2010-11-04 14:30:29