由于“以前的操作还没有完成”,Subversion卡住了?

时间:2012-04-12 16:56:43

标签: svn tortoisesvn

如果我尝试更新我的subversion repo,它说我必须运行清理。如果我运行清理,它说文件丢失。 (我删除了今天早上从家用电脑上未能提交的MASSIVE文件目录,但后来我从工作中提交了相同的文件集,现在我的家庭仓库已经破产)。所以,清理说:

清理无法处理blablabla无法设置文件blablabla读写:系统无法找到指定的文件。

如果我更新它说:

  

命令:更新错误:上一个操作尚未完成;   运行'cleanup'如果它被中断错误:请执行   '清理'命令。完成:

我如何解开这个?

30 个答案:

答案 0 :(得分:321)

通常不需要新的结账或复制。

我刚刚在这个问题的帮助下解决了与“先前的操作尚未完成”错误相关的类似问题(Link

似乎svn在处理命令/操作时有时会卡住。 所有这些操作都存储在.svn文件夹中的数据库文件wc.db中。

SQLite下载到我的结帐目录并运行

sqlite3.exe .svn/wc.db "select * from work_queue"

您可以获取所有待处理操作的列表。这些操作是错误所称的“未完成”。

运行

sqlite3.exe .svn/wc.db "delete from work_queue"

从工作队列中删除所有旧操作,并且错误消失。 不需要新的结账或任何其他

答案 1 :(得分:108)

正在运行的控制台svn cleanup为我解决了同样的问题。

答案 2 :(得分:91)

我一直处于类似情况。您是否尝试从工作区的根目录运行清理?我知道有时从子目录(问题所在)的清理不起作用,并从工作区的根清理。

如果仍然失败,那么你已经在某个地方删除了一个子目录。尝试从子目录中删除1级以上(假设不是根目录),并重新尝试更新和清理。

如果清理尝试在任何级别都没有成功,那么不幸的是,检查一个新的工作副本。

答案 3 :(得分:24)

我刚才有类似的问题。运行Process Explorer显示另一个程序(Notepad ++)具有SVN试图删除的文件夹的文件句柄。当我关闭Notepad ++时,“Clean Up”能够成功运行。

答案 4 :(得分:18)

我添加了一个已经在SVN中的jar后面对这个问题,我添加了同名的新版本。

在Eclipse中我尝试了这个

  1. 右键单击文件夹>团队>刷新/清除。
  2. 清理,构建和刷新我的应用程序。
  3. 重启Eclipse。
  4. 使用上述步骤,我可以进行同步。

答案 5 :(得分:14)

我在这里尝试过最多的投票答案,其他几个也没有用。我的WORK_QUEUE表空了,我无法在更高的文件夹中进行清理。 的工作原理如下(这是通过Tortoise SVN);

  • 右键单击文件夹
  • 转到TortoiseSVN - >清理......
  • 确保勾选了Break Locks的选项,然后点击确定

清理操作现在成功完成,我可以继续。不需要下载sqlite3或其他复杂的解决方案。

答案 6 :(得分:9)

在文件打开时尝试运行清理会给我带来麻烦。一旦我关闭我的应用程序(Visual studio),我就清理干净并且成功了

答案 7 :(得分:4)

我遇到了同样的问题,在我的情况下,我使用svn tortoise和我的意思是应用程序。在root模式下使用windows的cmd shell我应用了svn cleanup然后svn update ....然后你可以回到应用程序模式了,它会完美运行!

答案 8 :(得分:2)

我尝试将.svn文件夹移到其他位置并将其放回同一个根文件夹中。在我尝试更新SVN之后,它得到了更新。我不知道它究竟是如何运作的。

答案 9 :(得分:2)

我遇到了同样的问题,并以某种方式发现我在c:\级别有一个隐藏的.svn文件。一旦我删除了这个隐藏文件夹(.svn),一切正常。我必须无意中在根驱动器上创建一个工作目录。

答案 10 :(得分:2)

嗨,在我关闭Visual Studio并重试CleanUp后,我的情况下工作 玩得开心

答案 11 :(得分:2)

在我的情况下,我已经跑了,导致了问题。停止后我可以执行清理命令。

答案 12 :(得分:1)

在Eclipse中

  1. 右键单击项目文件夹>“团队”>“刷新/清理”。
  2. 在Eclipse窗口的“项目”菜单项下,选择“清理”选项
  3. 最后,重新启动Eclipse

答案 13 :(得分:1)

我还遇到了我尝试打击的问题:

1。尝试杀死与svn相关的进程,即TSVNCache.exe和TortoiseProc 2.还原未版本化的文件并删除它们,这是我在svn中拥有的。 3.使用命令提示符“ svn cleanup”进行清理

最后,当重新启动桌面时,它对我有用,所以对于重新启动系统来说,对我来说有用

答案 14 :(得分:1)

我今天在尝试提交SVN时解决了这个错误。 错误是真的,TortoiseSVN无法访问我试图提交的文件。运行程序时已保存此文件"作为管理员"在Windows中。这意味着该文件具有管理员访问权限,但不能从我的帐户访问(TortoiseSVN作为交互式用户运行)。 我在我的Windows帐户下取得了指定文件的所有权,然后清理就可以继续了。

答案 15 :(得分:1)

在使用外部时,我发生了这种情况,其中一个是腐败的。我不得不去那个文件夹并进行清理。然后清理工作整个工作副本。

示例:使用外部^/widgets/foo common/foo-widget,首先对文件夹common/foo-widget执行清理。

答案 16 :(得分:1)

在我的情况下,尝试从IDE中提交时出现错误。当我在资源管理器中使用TortoiseSVN执行相同目录的提交时,操作成功。

答案 17 :(得分:1)

我遇到了一个错误,例如“无法更改文件的权限'/Users/Code/UnitTest.cpp':没有这样的文件或目录”。 subversion对于不再存在的文件感到困惑。我只是做了一些类似“echo ABCD>> /Users/Code/UnitTest.cpp”的内容来创建文件的副本,然后进行清理。它奏效了。

答案 18 :(得分:1)

我有同样的问题,对我有用:

  1. 将您的文件夹和文件复制到另一个地方,比如文件夹(最近我更改了文件,但承诺失败并导致了解决的问题)
  2. 查看新的工作副本
  3. 将已更改的文件从文件夹复制到工作副本并覆盖现有文件。提交/更新应该现在可以正常工作

答案 19 :(得分:1)

对我有用的解决方法:

  1. 剪切目录的内容并将其复制到另一个文件夹。
  2. 从空文件夹的命令行运行清理。
  3. 将文件复制回原始文件夹。
  4. 完成,但我无法解释为什么会发生这种情况。 如果不删除文件,则cleanup命令表示他无法读取/写入这些文件。

答案 20 :(得分:1)

从主文件夹中删除svn并将其替换为您从elsewere获得的另一个可行副本,然后更新。 svn文件夹通常是一个隐藏文件夹。因此,请确保在执行上述步骤之前取消隐藏文件夹。

答案 21 :(得分:0)

按照以下步骤操作。

1)转到无法通过svn成功清理的目录。(根文件夹或子文件夹)。

2)在目录中选择.svn文件夹,剪切该文件夹并将其粘贴到单独的驱动器或单独的位置(从svn目录中删除)

3)现在,返回目录 - 右键单击​​并选择TortoiseSVN -->Repo-browser

4)Checkout文件夹(它不会执行新的结帐)。

5)所有项目都会再次版本化,它将修复svn的内部问题,问题应该解决。

答案 22 :(得分:0)

我最初在尝试使用TortoiseSVN时遇到此问题。最初,TortoiseSVN清理和控制台svn清理都失败了,与原始海报的消息类似。

但我的解决方案(意外发现)只是等了几分钟。我在想,TSVNCache在办理登机手续时会持有其中一些文件。

答案 23 :(得分:0)

在我的情况下,后台Java虚拟机实例正在运行,导致清理成功。

答案 24 :(得分:0)

使用此链接, https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-cleanup.html

我注意到教程检查了前6个选项。无奈之下,我尝试使用那些复选框,令我惊讶的是它有效。一定要仔细阅读每个人的作用。看看每个的描述,它们似乎可以安全地包括在内,所以其中一个检查项目似乎已经修复了任何阻碍我的问题。

答案 25 :(得分:0)

当您尝试进行SVN切换/清理时仍然打开文件时会发生这种情况。

我有一个分支,我在其中创建了一个新文件,我在另一个应用程序中打开了该文件。切换到另一个分支无法删除导致交换机失败的文件。这也导致b失败,但这不会在Tortoise SVN UI中显示为原因。

从控制台窗口(在根文件夹上)运行svn cleanup会清楚地显示错误svn cleanup

关闭所有打开的文件句柄/窗口并运行控制台file\location\file.ext: The process cannot access the file because it is being used by another process然后允许清理工作正常。

长话短说 - 在控制台中运行svn cleanup以查看更详细的错误。

答案 26 :(得分:0)

除了Sigurd V的答案(你应该先尝试一下),一些较大的代码库有多个' .svn'文件夹,并不一定是根目录中具有锁定任务的文件夹。

如果是这样的话,你必须检查每一个。如果您已经拥有SQLite和Powershell,则可以快速找到有问题的目录。

要查找已锁定的文件夹(替换path\to\sqlite.exe):

Get-ChildItem -Path . -Filter '.svn' -Recurse -Hidden | foreach { $toFind = $_.FullName + "\wc.db" ; gci $toFind | foreach { echo $_.FullName ; path\to\sqlite.exe $_.FullName "select * from work_queue" } }

这给出了.svn目录的列表,并在每个目录下面列出了任何当前任务的列表。

如果有任何未完成的任务,则每次运行(替换path\to\sqlite.exepath\to\.svn\wc.db):

path\to\sqlite.exe path\to\.svn\wc.db "delete from work_queue"

答案 27 :(得分:0)

我已经看到svn的几个问题,包括这个问题,可以通过删除/创建.svn/tmp目录来解决。然后运行svn cleanup

答案 28 :(得分:0)

我用乌龟SVN。如果清理失败,请检查清理选项

确保已选中突破性锁定的选项。

清理步骤

  • 浏览文件夹中的鼠标左键
  • 选择“乌龟SVN”->“清理...”菜单
  • 选中“ 防盗锁”,然后按“确定”

它已经回答了,但是有时候图片有帮助

enter image description here

答案 29 :(得分:-3)

请点击此链接。 它完全解决了您的问题。

转到主目录右键单击 - > Tortoise SVN - >清理

https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-cleanup.html