如果我尝试更新我的subversion repo,它说我必须运行清理。如果我运行清理,它说文件丢失。 (我删除了今天早上从家用电脑上未能提交的MASSIVE文件目录,但后来我从工作中提交了相同的文件集,现在我的家庭仓库已经破产)。所以,清理说:
清理无法处理blablabla无法设置文件blablabla读写:系统无法找到指定的文件。
如果我更新它说:
命令:更新错误:上一个操作尚未完成; 运行'cleanup'如果它被中断错误:请执行 '清理'命令。完成:
我如何解开这个?
答案 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中我尝试了这个
使用上述步骤,我可以进行同步。
答案 5 :(得分:14)
我在这里尝试过最多的投票答案,其他几个也没有用。我的WORK_QUEUE
表空了,我无法在更高的文件夹中进行清理。 的工作原理如下(这是通过Tortoise SVN);
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中
答案 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)
我有同样的问题,对我有用:
答案 19 :(得分:1)
对我有用的解决方法:
完成,但我无法解释为什么会发生这种情况。 如果不删除文件,则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.exe
和path\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。如果清理失败,请检查清理选项
确保已选中突破性锁定的选项。
清理步骤
它已经回答了,但是有时候图片有帮助
答案 29 :(得分:-3)
请点击此链接。 它完全解决了您的问题。
转到主目录右键单击 - > Tortoise SVN - >清理
https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-cleanup.html