TFS文件必须保持锁定状态

时间:2013-02-08 16:56:58

标签: tfs

我在TFS中检查了一些第三方dll 我们的机器已重命名,现在TFS认为我们已经在另一台机器上检查了它们的编辑。

我尝试了tf lock /lock:none contrib64/* /workspace:oldmachine;myusername,但我收到了错误

TF10152: The item $/XXX/YYYY/contrib64/third_party.dll must remain locked because its file type prevents multiple check-outs.

1,有什么方法可以解决这个问题吗? 2,TFS真的很糟糕还是仅仅是我? 3,TFS的目的是让我们怀念VSS吗?

ps这是一个托管版本,所以我不能让管理员修复它。

4 个答案:

答案 0 :(得分:10)

撤消锁定对这些文件不起作用,因为它们是二进制文件,因为二进制文件无法合并,如果签出它们必须锁定。

由于工作空间所在的机器不再存在(机器已重命名),最好的办法是删除工作空间。

从Visual Studio命令提示符

tf workspace /delete oldmachine;myusername /collection:http://*tfsserver*:8080/tfs/*collection*

这将删除工作区并撤消所有挂起的更改

答案 1 :(得分:2)

扩展名为.dll的文件以及.exe,.doc,.docx等其他扩展程序会自动锁定,因为(如上所述)此处无法合并。

如果您想要禁用自动锁定并允许这些文件通过门控办理登机手续,请按照以下步骤操作:

  1. 登录构建服务器。
  2. 打开visual studio。
  3. 在团队资源管理器中,登录您的团队项目。
  4. 转到"设置"。
  5. 在" Team Project Collection"下,选择" Source Control"。
  6. 设置"文件合并"财产到"残疾人"对于任何文件扩展名,您都不希望自动锁定。
  7. 参考:https://blogs.msdn.microsoft.com/phkelley/2008/11/12/everything-you-ever-wanted-to-know-about-locks/

    这对我有用。

答案 2 :(得分:2)

如果您不想删除工作空间,则可以撤消更改并在此之后将文件解锁:

使用Visual Studio开发人员命令提示符:

tf undo "$/<server-path-to-file/folder>" /workspace:"<workspace>;<user>" /collection:<collection-url> /recursive

tf lock "$/<server-path-to-file/folder>" /lock:none /workspace:"<workspace>;<user>" /collection:<collection-url> /recursive

答案 3 :(得分:0)

我需要在2个地方更改设置:

  1. 在Visual Studio的团队项目窗口中,设置->团队项目集合->源代码管理 enter image description here 为扩展名启用文件合并。

2)在Visual Studio的团队项目窗口中,设置->团队项目->源代码管理 enter image description here 启用多重签出框