TFS声称文件被锁定,即使它们没有被锁定 - 孤立锁定

4
我正在尝试使用tf.exe在两个分支之间执行无基础合并。当我运行命令时,它失败并告诉我有15-20个文件被另一个用户锁定。我查看了其他用户的待处理更改,他只在目标分支中检出了三个文件,而且没有一个被锁定。有人以前遇到过类似的情况吗?
编辑
在Robaticus的帮助下,我发现锁定位于tbl_lock表中,但它们关联的待处理更改不再存在。看起来除了给我们当前合并问题的那些锁定之外,还有多个孤立的锁定。
有人知道是什么原因导致这些问题或修复它们的方法不涉及直接操作数据库吗?我将进行一些研究,看看能否找到任何信息。
编辑2
首先搜索“TFS孤立锁定”返回了Orphaned locks in TFS。TFS团队建议直接从表中删除它们,所以我想我必须这样做。

我没有看到任何帖子表明这个问题已经被解决了。

2个回答

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

是的,我应该提到我正在使用强大的工具并且我是管理员。我找不到那个人在任何工作区检出的内容。它抱怨的文件是来自从主干合并到他的项目分支的一些文件夹和DLL。 - ryan.rousseau
你可能需要看一下TFS版本控制数据库。请参见上面的我的编辑。 - Robaticus
是的,那些文件肯定是孤立的。我会尝试检查一下文件并撤销它。也许这样可以清除表中的记录。 - ryan.rousseau

2

您是否使用了Attrice Sidekicks来查看这个问题。它是TFS命令行工具周围的一个漂亮的用户界面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接