110

当我尝试更新或提交项目中的代码时,它告诉我该文件夹已锁定。当我尝试“释放锁定”时,它说在这个工作空间中没有什么可以解锁的。

这意味着什么?为什么我不能更新、提交甚至清理项目。

4

18 回答 18

163

右键单击您的 Subversion 工作目录文件夹,然后从上下文菜单中选择TortoiseSVN->Clean Up 。这将通过您的工作目录递归并清除任何不完整的操作,删除本地锁(这与使用 Subversion 锁定存储库中的文件不同,让每个人都知道锁)。

如果这不起作用,请查看是否可以找到已更改但尚未提交的文件的名称,保存它们,然后重新签出。

于 2012-04-12T21:11:17.960 回答
17

如果文件被自己锁定(相同的svn帐户),您可以按照以下步骤操作:

右击被锁定的文件或文件夹,选择TortoiseSVN->Get lock...,勾选对话框左下角的“ [] Steal the locks ”,点击“OK”。如果它成功完成,那没关系。再次右键该文件,可以看到 TortoiseSVN->Release lock...,点击解锁。

于 2012-09-11T09:32:32.670 回答
12

使用 svn 命令行解锁本地文件夹,只需使用svn cleanup.

前:

# svn commit -m "fixing #1234"

犯罪

# svn st

前

# svn cleanup

后:

# svn st

后

# svn commit -m "fixing #1234"

之后2

于 2014-10-18T18:28:29.667 回答
10

对于仍然遇到此问题的任何人(错误:工作副本“{DIR}”已锁定。),我有您的解决方案:

我发现当一个 TortoiseSVN 窗口崩溃时,它会留下一个 TSVNCache.exe,它仍然有一些处理您的工作副本的句柄,这会导致您看到的锁定问题(并且还会阻止清理工作)。

所以要解决这个问题:

任何一个

1a) 使用 Process Explorer 或类似工具删除 TSVNCache.exe 拥有的句柄

1b) ..或者更简单,只需使用任务管理器杀死 TSVNCache.exe

然后

2)右键单击-> TortoiseSVN-> 清理。只需要检查“清理工作副本状态”。

从那里开始,快乐的更新/提交。您可以通过执行 SVN 更新来重现锁定行为,然后在更新完成之前快速杀死它的 TortoiseProc.exe 进程。

于 2013-03-04T20:51:34.877 回答
9

这是我第一次遇到这个问题。我什至尝试重新启动PC,但没有效果。这解决了我的问题:

我的解决方案:

  1. 右键单击项目工作目录。
  2. 导航TortoiseSVN
  3. 导航到清理
  4. 保留所有默认选项,并检查Break Locks
  5. 点击确定

这对我有用。我能够提交更改。

于 2016-08-01T22:01:19.207 回答
3

要从命令提示符解锁当前被其他用户锁定的工作副本中的文件,请使用--forceoption。

$ svn unlock --force tree.jpg

于 2014-04-23T05:52:58.787 回答
3

我遇到了这个问题,我已经完成了以下步骤来解决它:

  1. 转到父文件夹而不是子文件夹
  2. 选择 SVN 清理
  3. 单击确定。

在父文件夹而不是子文件夹上执行此步骤!

它对我有用!

于 2015-10-21T15:22:06.907 回答
1

我正在将一个文件夹向上移动一个级别并进入另一个文件夹。我的错误是从父文件夹中进行移动。

不好的例子:

pwd -> C:\Repo\ParentDir\
svn move ./DirtoCopy ../AnotherDir

SVN 需要使用已删除的文件夹信息更新父目录。
您必须从源文件夹和目标文件夹的公共根目录执行此操作,或者使用完整路径。

好例子:

svn move C:\Repo\ParentDir\DirtoCopy C:\Repo\NewLocation
于 2016-04-18T14:51:43.267 回答
1

要解锁被阻止的文档: 1. 右键单击​​ -> 锁定 2. 选中“窃取锁定”复选框 2. 解除锁定

于 2016-12-06T12:31:31.613 回答
1

我遇到了无法从客户端解锁文件的问题。我决定去更简单的服务器端。

在 SVN 服务器上:

定位锁

 svnadmin lslocks /root/of/repo
 (in my case it was var/www/svn/[name of Company])

 You can add a specific path to this by svnadmin lslocks /root/of/repo "path/to/file"

解除锁定

 svnadmin rmlocks /root/of/repo “path/to/file” 

就是这样!

于 2018-11-09T15:42:14.927 回答
0

解决方案 :

  1. 右键单击项目工作目录。
  2. 导航 TortoiseSVN。
  3. 导航到清理。
  4. 选择清理工作副本状态(勾选)
  5. 点击确定
  6. 重复步骤 1 和 2,然后导航以释放锁定。
  7. 单击确定您的项目锁将打开。
于 2013-12-23T08:59:20.673 回答
0

除了 David M 的回答之外,在进行清理时 -> 检查 'break locks' 选项。这将确保释放锁。然后做svn更新。这对我有用。

于 2016-05-18T06:22:28.290 回答
0

我对此问题进行了很多研究,但在我尝试以下方法之前没有解决方案可以解决我的问题:

我的 repo 文件夹与 Windows xp 虚拟机共享,因此我从 VM 执行清理,然后从主机执行 SVN UPDATE。

它对我有用。

来自哥斯达黎加的问候。

于 2017-07-11T16:32:57.653 回答
0

通过重命名文件夹以使文件夹路径更小,我能够在我的机器上解决此问题。

于 2019-05-20T20:59:19.243 回答
0

我遇到了类似的问题,它告诉我某些文件已被xx锁定。但是,xx 说他有释放锁,他在 TortoiseSVN 上找不到锁。

clean up对我不起作用。我得问他去TortoiseSVN -> Repo-browser,找到对应的文件,然后右键这些文件,选择break lock

于 2021-07-19T09:41:56.320 回答
-1

我在尝试更新文件夹时让 Tortoise 损坏并崩溃后发生了这种情况。我最终重新安装了 Tortoise,但幽灵锁仍然存在。从那里我不得不删除文件夹并重新结帐。显然,我真的很幸运,当时我没有任何新的更改要提交。无论如何,这不是好消息,如果有人有更好的解决方案,我很想亲自听到。即使使用“Break Lock”,即使用强制选项解锁也没有改变任何东西。

于 2012-04-12T20:21:40.957 回答
-1

清理,选中所有复选框 => 这对我有用

于 2013-09-18T02:49:37.080 回答
-1

在这些操作之后我遇到了这个问题:

  1. 锁定文件夹
  2. 修改文件
  3. 删除文件并更新文件夹 --> 下载新文件
  4. 尝试提交或释放锁

我终于通过再次强制锁定解决了这个问题: TortoiseSVN --> 获取锁定 --> 检查“窃取锁定”然后提交或释放锁定。

于 2015-04-28T16:31:33.857 回答