【问题标题】:git-tf tells on linux me “Could not lock” when checking in; how can I fix it?签入时 git-tf 在 linux 上告诉我“无法锁定”;我该如何解决?
【发布时间】:2016-07-11 11:10:49
【问题描述】:

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

正在连接到 TFS... 签入 $/MyProject: 0% git-tf: 不能 锁定 $/MyProject

这是什么意思?是什么让我无法锁定?我该如何解决这个问题?

我发现一个工作区锁定了项目,但我不知道是哪个,也不知道如何恢复。

在互联网上的搜索提示我找到了各种依赖于 Windows 的修复程序,但这对我在 linux 系统上没有帮助。

所以,虽然这个问题似乎是duplicate,但更多的是关于如何在 Linux 上解决问题。

【问题讨论】:

    标签: linux tfs git-tf


    【解决方案1】:

    首先需要解决的是找出$/MyProject下所有被锁定的文件,然后解锁。

    Windows 平台上有多种工具可用,如 TFS PowertoolTFS SideKicks,正如您在其他案例中所读到的那样。

    我在 Linux 上找不到任何现有工具来获取所有锁定的文件,因此tfs command lines 将是一种解决方案。你可以使用状态命令列出$/MyProject下所有签出的文件,命令应该类似(我没有Linux系统测试,需要你自己验证):

    tf status $/MyProject /user:* /recursive
    

    找到已签出的文件后,使用锁定命令 tf lock /lock:none 解锁文件。

    【讨论】:

    • 谢谢,但显然这些文件被锁定在已删除的工作区中。对于 git-tf,可以安全地删除工作区,因为这不会损害功能。临时工作区仅在提交时启动(也可能是拉取)。这些工作区随后将被删除。
    【解决方案2】:

    最终我发现,这可以通过删除锁定存储库的工作区来解决。

    tf workspaces -remove:myLockedWorkSpaceName
    

    但是,在那之后它仍然被远程锁定。 最终,我不得不从 Windows 机器通过 Visual Studio 连接到存储库。

    那里:

    文件->源代码管理->高级->工作区

    切换“远程工作区”

    选择 git-tf-##### 工作区并删除它们。

    之后,一切都恢复正常了。

    不知何故,我仍然不知道如何从 LINUX 命令行执行此操作。

    【讨论】:

      猜你喜欢
      • 2021-01-30
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 2013-01-29
      • 2020-11-25
      • 1970-01-01
      • 2013-10-13
      • 2011-02-25
      相关资源
      最近更新 更多