繁体   English   中英

登记时,git-tf告诉我“无法锁定”;我该怎么解决?

[英]git-tf tells me “Could not lock” when checking in; how can I fix it?

我正在使用git-tf推送到TFS项目。 有时,当我尝试将一个或多个提交检入TFS时,我收到如下消息:

连接到TFS ......
签入$ / MyProject:0%
git-tf:无法锁定$ / MyProject

这是什么意思? 是什么阻止我锁定? 我该如何解决这个问题?

为什么会这样

使用标准TFS时,您一次只能检入一个提交。 但是使用Git,你可以进行一系列的提交,你可以同时推送所有提交。

因此,git-tf努力使你的提交集保持原子性。 如果有人在您办理登机手续时办理登机手续,那么历史可能会混乱; 它不会被正确合并。

为了防止这种情况,git-tf会在签入时临时锁定整个源树 。但是,如果其他人已经锁定了源树的某些部分,则无法执行此操作。

怎么解决它

你会在某些地方看到--no-lock参数:

git tf checkin --no-lock

这不是一个好的解决方案。 它忽略了潜在的扰乱历史问题,而不是解决它。

如何解决它

  1. 根据您正在使用的TFS版本,下载并安装适当版本的TFS Sidekicks
  2. 运行TFS Sidekicks。
  3. 导航到工具>状态Sidekick。
  4. 清除用户名字段。
  5. 设置足够宽的日期范围以包含项目的整个历史记录。 如果愿意,您可以过滤项目名称字段。
  6. 单击搜索。 您将获得项目中所有已签出文件的列表。
  7. 单击“锁定类型”列标题以按该列排序。 大多数文件在该列中可能都有“无”。 你正在寻找任何“锁定”的文件。 这在二进制文件中最常见,因为它们无法合并。 默认情况下,TFS将在签出时将其独占锁定。
  8. 一旦找到锁定的文件,请与锁定它们的人交谈并协商解锁。 如果此人不再在那里工作,您可能希望让TFS管理员删除锁。
  9. 删除所有锁后,再次在TFS Sidekicks中单击“搜索”,您会看到所有文件的锁定类型均为“无”。 现在再次尝试你的git tf checkin,这次它应该正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM