9

使用 Team Foundation Server 2010,我试图取消我团队中另一位开发人员所做的一系列更改。这个搁置集包括一些包含 dll 的 Nuget 包。我收到以下多个错误:

项目 $/file/path/some.dll 被 USER 在工作区 MACHINENAME 中锁定以供签出。

2008 年,Mac Noland 在他的博客文章Unshelving files that have File Merging disabled中断言,此错误是由禁用文件合并引起的。为二进制文件禁用文件合并是很有意义的。基于该错误,我假设 TFS 2010 在取消搁置时仍在使用合并实用程序(这对于为什么是有道理的)。那就是说我不想为 dll 文件启用文件合并。

不幸的是,了解正在发生的事情并修复它是两件不同的事情。在 TFS 中有没有办法取消搁置由不同用户搁置的二进制文件?

4

3 回答 3

6

如果用户创建了搁置集,但在本地签出了所有内容,您将收到此错误。由于 TFS 通常只允许对二进制文件进行一次签出,因此如果搁置集包含被另一个用户锁定的二进制文件,则无法取消搁置。

您可以尝试使用以下命令解锁文件 -

tf lock itemspec /lock:none /workspace:OtherUsersWorkspace

您应该能够从错误消息中确定工作区,并且您还需要指定用户 - /workspace:WORKSPACE;userid

于 2013-10-25T22:16:06.207 回答
1

就我而言,我的源代码位于我的工作站的下方位置

D:\TFS\源\开发\汽车。

我在 Visual Studio Tools 下打开了Visual Studio Command Prompt并以 Administrator 身份运行它

我将命令提示符更改为移动到

D:\TFS\Source\Development\Cars

在下一行执行

D:\TFS\Source\Development\Cars> tf lock HE/* /lock:none /workspace: zigglerworkspace /login: ziggler /collection: ziggler1pxtfs01\WebProjects

zigglerworkspace - 我的工作区名称

ziggler - 我的用户名

ziggler1pxtfs01\WebProjects - TFS 服务器网址

这释放了对位于 HE 文件夹下的所有文件和文件夹的锁定

D:\TFS\Source\Development\Cars\HE

于 2015-01-05T19:57:08.593 回答
1
  1. 安装 Microsoft Team Foundation Server 2010 电动工具

  2. 添加C:\Program Files (x86)\Microsoft Team Foundation Server 2010 Power Tools到您的系统路径

  3. cd c:[某个位置]\"目标工作区"

  4. tfpt unshelve /migrate "shelveset name";otherUserName /source:"$/ProjectName/Main/Source" /target:"$/ProjectName/Main/Target"

于 2016-11-22T10:40:24.057 回答