TFS文件必须保持锁定状态。

11

我有一些第三方dll文件已经检入TFS中
我们的计算机更名之后,TFS认为这些文件已经被我在另外一台计算机上进行了编辑。

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

TF10152:$ /XXX/YYYY/contrib64/third_party.dll项目必须保持锁定状态,因为它的文件类型防止了多次检出。

1、是否有任何解决方法?
2、TFS真的很糟糕还是只是我个人的感觉?
3、TFS的目的是让我们怀念VSS吗?

附:这是一个托管版本,所以我不能让管理员来解决问题。

4个回答

11

由于这些文件是二进制文件,无法合并,因此取消锁定操作不起作用,如果已经签出,则必须锁定。

由于工作区所在的计算机不再存在(计算机已更名),最好的方法是删除工作区。

从Visual Studio命令提示符中执行以下命令:

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

这将删除工作区并撤消所有待处理的更改。


我找到了“删除工作区”的建议,但我们托管的TFS暗示整个公司就是一个“工作区” - 至少它将我们的整个集合称为如此。每台机器+用户都是一个工作区吗? - Martin Beckett
谢谢,二进制的检出/合并原因现在确实有意义了! - Martin Beckett
1
每个用户可以在多台机器上拥有许多工作区。工作区是源代码控制中文件夹和本地硬盘上文件夹之间的映射关系。从技术上讲,我认为集合可以被视为“工作区”的一般术语,但在TFS中,“工作区”具有特定的含义。默认情况下,当您创建一个工作区时,它的名称是machineName;username,同一台机器上的第二个工作区将是machineName_1;username,您可以重命名工作区名称的第一部分。删除旧的工作区,然后您就可以继续进行了。 - James Reed
非常感谢。关于其他问题,您有什么想法吗?TFS真的比Git不友好吗,还是我需要学习更多? - Martin Beckett
这很主观 :-) 我没有使用过 Git,所以我无法发表评论。TFS 需要一些时间来适应,它非常符合 CVCS 的特点。更好的比较是 SVN,我认为 TFS 从源代码控制的角度来看与 SVN 相当(截至 TFS 2012)。当然,TFS 做的事情远不止版本控制。虽然 TFS 有其缺陷和烦恼,但我断言它比 VSS 好了 10 亿倍。 - James Reed
有史以来最好的答案。 我花了几个小时尝试解锁在另一个工作空间/机器上进行的结帐,直到现在我都没有成功。谢谢... - monn3t

3

如果你不想删除工作区,可以在撤销更改并解锁文件后实现:

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

tf undo "$/<服务器路径-到-文件/文件夹>" /workspace:"<工作区>;<用户>" /collection:<集合URL> /recursive

tf lock "$/<服务器路径-到-文件/文件夹>" /lock:none /workspace:"<工作区>;<用户>" /collection:<集合URL> /recursive


2

文件扩展名为.dll以及其他扩展名如.exe、.doc、.docx等文件会自动锁定,因为它们无法进行合并。

如果您想禁用自动锁定并允许这些文件通过闸门检入,请按照以下步骤操作:

  1. 登录您的构建服务器。
  2. 打开Visual Studio。
  3. 在团队资源管理器中,登录到您的团队项目。
  4. 转到“设置”。
  5. 在“团队项目集合”下选择“源代码控制”。
  6. 对于任何您不想自动锁定的文件扩展名,将“文件合并”属性设置为“已禁用”。

参考:https://blogs.msdn.microsoft.com/phkelley/2008/11/12/everything-you-ever-wanted-to-know-about-locks/

这对我很有用。


0

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

  1. 在Visual Studio的团队项目窗口中,选择“设置”->“团队项目集合” -> “源代码控制” enter image description here 启用扩展的文件合并。

2)在Visual Studio的团队项目窗口中,选择“设置”->“团队项目” -> “源代码控制” enter image description here 启用多重签出框。


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