2012-01-06 125 views
63

我正在开发使用Subversion版本控制网,却得到了“工作目录锁定”错误消息工作副本已锁定

这里的故事:

PC-A:

  • 的Windows XP专业版
  • 的VisualSVN 2.5.2
  • 龟SVN 1.7.3

PC-B:

  • Windows XP家庭
  • 乌龟SVN 1.7.3

我已创建的PC-A使用的VisualSVN库。从PC-B,我签出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。

我创建了一个post-commit挂钩运行my-post-commit.bat文件,所以当我提交到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" 

在PC-B上,创建index.php文件,并提交。在d。当我承诺,我得到这个错误信息

error message

在PC-A,我试着右击:\ XAMPP \ htdocs中\测试LALALA TortoiseSVN的>清理,并选中“清理工作副本状态“和”包含外部“(默认选中)。尝试添加文件并提交,但仍收到相同的错误消息。

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

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

+0

乔纳森Ĵ豪伊的回答为我工作。我必须再做一件事,那就是在清理之前关闭我的视觉工作室。 – 2017-05-10 19:00:41

回答

1

我结束了使用导出命令而不是更新命令。这是后提交钩子

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

0

我遇到了与您所描述的相同的问题。它似乎是龟龟1.7.3上的一个bug。我已经恢复到1.7.2,执行了清理和更新。 现在我的SVN/Tortoise再次正常工作

6

我通过删除隐藏的.svn文件夹来修复它,并将其替换为新鲜结帐.svn,并且工作正常。可能这个隐藏的文件夹搞砸了!

+0

这是为我工作的唯一解决方案。谢谢! – 2013-04-28 18:21:15

177

每当我收到工作副本锁定的错误,我运行一个“清理”。之后,一切都恢复正常。

在命令行上,您可以执行svn cleanup,它也会删除锁定文件。

注意:在一个层级目录中执行此操作,并且应该解决大部分时间。

+0

谢谢,解决了我的工作拷贝锁定问题与清理命令 – 2012-12-03 10:35:48

+15

工作对我来说,当我清理从上锁的地方 – waqaslam 2013-01-03 12:14:27

+0

这是工作在Ubuntu上一级目录,我有Ubuntu的对服务器和客户端的Linux和它的作品。实际上,这个问题在Linux上比我在Windows上更常见。 – 2015-06-10 01:20:48

35

要有人仍然有这个问题(错误:工作副本“{} DIR”锁定),我中有你的解决方案:

我发现TortoiseSVN的窗口崩溃的时候之一,它留下了TSVNCache.exe那对你的工作副本仍然有几个句柄,这导致了你所看到的Lock问题(并且也阻止了Clean Up的工作)。

因此,要解决此问题:

要么

1A)使用进程资源管理器或类似删除

1B通过TSVNCache.exe

拥有的手柄)..或者更简单,只需要使用任务管理器杀TSVNCache.exe

然后

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

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

+1

+1这是我唯一的工作! – JHFB 2013-04-03 15:24:38

+0

只要运行清理工作对我来说,但这是在注销和再次之后,所以可能已经杀死了这种过程。 – RedEyedMonster 2013-04-10 09:25:12

+0

我有Visual Studio与AnkhSVN运行,并不得不在清理工作之前关闭。 – xenoclast 2013-06-28 10:27:31

21

在顶级目录级别运行“清理”。

+2

由于svn客户端在文件夹/文件添加时存在锁定而无法正确提交,因此可能会出现“工作目录锁定”错误,并且可能会通过清理进行修复。 – Prince 2013-04-18 17:07:46

+1

我得到了同样的错误,当我没有在顶级目录水平 – Vincent 2013-11-05 07:49:09

+3

+1 *“顶部目录级别” *运行清除。没有其他人提到它,它似乎很重要。 – Melebius 2014-01-30 17:05:59

1

错误“工作副本已锁定”, 只要按照步骤操作:

  1. 在该目录中,您是在更新
  2. 转到得到错误到它的父目录
  3. 在父目录中去”。 SVN”隐藏目录与名称
  4. 删除文件‘锁定’
  5. 清理和完成

您可以正确更新svn而不会出错

3

如果您是Windows用户并使用“Tortoise SVN”用户。

选择文件。右键点击。 Option'Tortoise SVN' - > get Lock。 使用选项'偷锁'。

0

对于PHPStorm或的IntelliJ:

VCS -> Cleanup Project 
4

我相信它工作正常,你

转到顶级SVN文件夹。

右键单击文件夹(有你的svn文件) - > TortoiseSVN的 - >清理

这必将解决您的问题。

1

乌龟SVN - >清理

这就是所有在SVN

+0

其中经常出现故障或清理无限期 – Asu 2016-05-25 15:09:42

1

当你的工作拷贝错误,只要运行svn cleanup其清洁所有不需要的文件和文件夹。如果仍然出现错误,那就做一件事。

您的文件复制到其他驱动器和删除工作拷贝文件夹或文件,然后采取了更新,将取回新的文件,并在此之后替换为更新的副本并提交相同。

7

我通过删除SQLite的WC_Lock记录“的.svn \ wc.db”在WC_LOCK表文件锁定记录解决它。

只需打开“wc.db”文件使用SQLite编辑和执行

从WC_LOCK

该解决方案中另一个链接,我现在无法找到给予删除。但确实很不错;不用担心删除所有目录

+0

为我工作的唯一解决方案! – 2017-08-22 06:10:09