提交失败:已被锁定

30

我刚试图使用TortoiseSVN将大约25000个文件添加和提交到VisualSVN中。

提交对话框被锁定了(我想这是可以预料的),但在线程被阻塞一段时间后,我杀掉了Tortoise,希望一次提交更小的文件块。

现在我收到了以下错误:

错误:提交失败(详细信息如下):

工作副本'C:\INTERNAL\Icons\Oxygen 4.10.1'已锁定。

'C:\INTERNAL\Icons\Oxygen 4.10.1\scalable\places\PaxHeaders.14455'已被锁定

我已经几次杀死了TortoiseProc.exe并重新启动了VisualSVN,但我仍然收到错误。

我还右键单击了文件夹并选择了“释放锁定”,但我得到以下消息:

没有需要解锁的内容。此工作副本中没有任何文件被锁定。

当我运行 svn st 时,我会得到一个所有等待添加的文件的巨大长输出。

即使我尝试提交与之无关的内容(向上几个目录),我也会收到相同的错误。

我能够成功提交到同一服务器上的另一个仓库。

我如何释放锁并提交这些文件?


你已经尝试过 svn cleanup 了吗? - Leo Chapiro
如果“cleanup”无法正常工作,您需要进行“fresh checkout”。 - Developer
3个回答

80
尝试进行SVN清理。我曾经遇到过同样的问题,清理后锁定被解除了。
具体来说,可以参考Tortoise SVN清理文档
如果Subversion命令无法成功完成,可能是由于服务器问题,你的工作副本可能会处于不一致的状态。在这种情况下,您需要在文件夹上使用TortoiseSVN → Cleanup。最好在工作副本的顶层执行此操作。
在清理对话框中,还有其他有用的选项可将工作副本清理为干净状态。
清理工作副本状态:如上所述,此选项尝试使不一致的工作副本进入可用状态。它不影响您拥有的任何数据,只影响工作副本数据库的内部状态。这就是您从旧版TortoiseSVN客户端或其他SVN客户端中熟知的Cleanup命令。
以下是建议的SVN Cleanup选项截图:

SVN Cleanup Screenshot


@DannyBeckett 这些是我为我的选择的。这是一种极简主义的方法,看看是否有效。应该是你所需要的全部。 - jordanhill123
这会影响等待提交的其他文件吗?即工作副本中比SVN服务器更新的无关文件(标有红色X而不是绿色勾号的文件)。 - Danny Beckett
@DannyBeckett 如果您使用还原和删除选项,可能会导致本地副本中的更改丢失,如果这些更改不在SVN中,请避免使用这些选项。使用该选项不会影响内容,它只会清理_SVN文件夹中的svn缓存数据。 - jordanhill123
@DannyBeckett 它只是清理了存储在_SVN本地文件中的工作副本状态,不会更改您的工作副本内容。 - jordanhill123
是的,那就是我所做的,谢谢...还在提交中,快完成了。看起来好像成功了! - Danny Beckett
显示剩余4条评论

21

对于Jordan的回答,我有一个小补充。我也遇到了同样的问题,但由于被锁定了,因此清理有问题的文件夹失败了。要解决这个问题,我必须在父目录上执行SVN cleanup, 然后在有问题的目录上执行。


7
如果您在Eclipse上使用svn,请尝试进行清理,但我猜测它会失败,因此安装Tortoise,然后勾选“打破锁定”选项进行清理。

enter image description here


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