我正在尝试使用tf.exe在两个分支之间执行无基本合并。
当我运行命令时,它失败并告诉我有15-20个文件被另一个用户锁定。我查看了其他用户的挂起更改,他只在目标分支中检出了三个文件,但没有一个被锁定。
以前是否有人经历过类似的事情?
修改
在Robaticus的帮助下,我发现锁在tbl_lock表中,但是它们所关联的挂起更改不再存在。看起来除了给我们当前合并问题的那些之外,还有多个孤立的锁。
有没有人知道是什么原因导致这些或修复它们而不涉及直接触摸数据库?我要做一些研究,看看能不能找到任何东西。
修改2
首次Google搜索'tfs orphaned locks'会返回:Orphaned locks in TFS
TFS团队建议直接从表中删除它们,所以我想我必须这样做。
我没有看到任何帖子表明它已被修复。
答案 0 :(得分: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
答案 1 :(得分:2)
您是否使用Attrice Sidekicks来调查此问题。它是围绕TFS命令行工具的一个很好的UI。