工作副本已锁定

Per*_*ana 69 svn tortoisesvn visualsvn visualsvn-server

我正在使用subversion作为版本控制开发一个Web,但得到了"工作目录锁定"错误消息

这是故事:

我有

PC-A:

  • Windows XP专业版
  • VisualSVN 2.5.2
  • Tortoise SVN 1.7.3

PC-B:

  • Windows XP Home
  • Tortoise SVN 1.7.3

我使用VisualSVN在PC-A上创建了存储库.

从PC-B,I Checkout http:\\ PC-A:81\svn\test\trunk到D:\ xampp\htdocs\test-lalala.

从PC-A,我还检查http:\\ PC-A:81\svn\test\trunk到D:\ xampp\htdocs\test-lalala.

我创建一个运行my-post-commit.bat文件的post-commit钩子,所以当我提交http:\\ PC-A:81\svn\test\trunk时,文件夹D:\ xampp\htdocs\test-lalalaon PC- A会更新,所以其他人可以看到结果.

"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\xampp\htdocs\test-lalala" --username myusername --password mypassword --config-dir "C:\Program Files\VisualSVN Server\conf" 
Run Code Online (Sandbox Code Playgroud)

在PC-B上,创建index.php文件,然后提交.当我提交时,我收到此错误消息

错误信息

在PC-A上,我尝试右键单击D:\ xampp\htdocs\test-lalala TortoiseSVN> CleanUp,并检查"清理工作副本状态"和"包含外部"(默认选中).尝试添加文件和提交,但仍然得到相同的错误消息.

我试图在.svn文件夹上查找锁文件,但没有锁文件.我还尝试删除PC-A D:\ xampp\htdocs\test-lalala上的工作副本并再次检出,但是当我提交时,仍然会收到相同的错误消息.

如何解决此错误消息?所以当我提交时,文件夹会自动更新?

小智 190

每当我收到工作副本锁定错误时,我都会运行"清理".之后一切都恢复正常.

在命令行上,您可以执行svn cleanup该操作也会删除锁定文件.

注意:在一个上一级目录上执行此操作,这应该可以解决大部分时间.

  • 当我从锁定的位置清理一个目录级别时,为我工作 (17认同)
  • 如果使用GUI,请不要忘记选中"Break locks"复选框. (5认同)

小智 36

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

我发现,当TortoiseSVN的窗口崩溃的一个,它留下了TSVNCache.exe仍然有几个把手,以你的工作拷贝,并导致该锁定的问题,你所看到的(并且也阻止清理从做它的工作).

所以解决这个问题:

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

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

然后

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

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

  • 经过大量的搜索,我终于找到了这个.这应该更加明显,因为它是唯一对我有用的东西! (2认同)

Pri*_*nce 21

在顶级目录级别运行"清理".

  • +1表示*"在顶层目录级别"*.没有人提到它,它似乎很重要. (3认同)
  • "工作目录已锁定"错误可能由于svn客户端在文件夹/文件ADD时锁定而未正确提交而可能出现,并且可能通过清除进行修复. (2认同)

sgu*_*pta 11

我通过删除WC_LOCK表中SQLite".svn\wc.db"文件锁记录中的WC_Lock记录来解决它.

用SQLite编辑器打开"wc.db"文件并执行

从WC_LOCK中删除

解决方案是在另一个我现在找不到的链接中给出的.但真的很不错; 不用担心删除所有目录


小智 7

我通过删除隐藏的.svn文件夹修复它,并用新的结帐替换它.svn,它工作.可能这个隐藏的文件夹搞砸了!


Sad*_*san 5

我相信它对你来说很好

转到顶级SVN文件夹。

右键单击文件夹(包含您的svn文件)-> TortoiseSVN->清理

这肯定会解决您的问题。


Per*_*ana 1

我最终使用导出命令而不是更新命令。这是提交后挂钩

"C:\Program Files\VisualSVN Server\bin\svn.exe" 导出 "D:\xampp\htdocs\test-lalala" --quiet --non-interactive --force --username myusername --password mypassword