如果我试图更新我的subversion repo,它说我必须运行清理。如果我运行清理,它会显示一个文件丢失。(我删除了今天早上在我的家庭电脑上未能提交的文件的MASSIVE目录,但后来我从工作中提交了相同的文件集,现在我的家庭回购崩溃了)。所以,清理的意思是:

Cleanup failed to process blablabla Can't set file blablabla read-write:系统找不到指定的文件。

如果我更新它说:

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

我怎么才能把它弄出来呢?


我也遇到过类似的情况。您尝试过从工作区的根目录运行清理工作吗?我知道有时从子目录(问题所在)进行清理不起作用,而从工作空间的根目录进行清理则可以。

如果仍然失败,因为您已经删除了某个地方的子目录。尝试从子目录中删除更高一级(假设不是根目录),并重新尝试更新和清理。

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


我尝试将.svn文件夹移到其他位置,并将其放回相同的根文件夹中。当我尝试更新SVN时,它更新了。我不知道具体是怎么回事。


从主文件夹中删除SVN,并从其他可用的副本中替换它。然后更新。SVN文件夹通常是一个隐藏文件夹。因此,请确保在执行上述步骤之前取消隐藏文件夹。


我也遇到过类似的问题。运行进程资源管理器显示另一个程序(notepad++)具有SVN试图删除的文件夹的文件句柄。当我关闭notepad++时,“清理”能够成功运行。


对我有用的变通方法:

剪切目录的内容并将其复制到另一个文件夹。 从命令行对空文件夹运行清理。 将文件复制回原始文件夹。

完成了,但我无法解释为什么会这样。 如果您不删除这些文件,cleanup命令会说他无法读取/写入这些文件。


运行console svn cleanup已经为我解决了同样的问题。


当你的文件打开时,试图运行清理给我带来了问题。当我关闭我的应用程序(Visual studio),我运行清理,它是成功的


我也遇到过同样的问题,对我有用的是:

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


通常不需要新的签出或复制。

我刚刚解决了一个类似的问题,与错误“先前的操作尚未完成”的帮助下(链接)

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

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

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

您可以获得所有挂起操作的列表。错误将这些操作称为“未完成”操作。

通过运行

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

所有旧的操作都从工作队列中删除,错误也消失了。 不需要新的收银台什么的


我也遇到了同样的问题,不知怎么的,我发现在c:\级别有一个隐藏的.svn文件。一旦我删除了这个隐藏文件夹(.svn),一切工作正常。我一定是无意中在根驱动器上创建了一个工作目录。


我有一个错误,如“无法更改文件'/Users/Code/UnitTest.cpp':没有这样的文件或目录”。subversion会对一个不再存在的文件感到困惑。我简单地做了一些类似于“echo ABCD >> /Users/Code/UnitTest.cpp”的事情来创建文件的副本,然后清理。它工作。


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

在Eclipse中我尝试了这种方法

右键单击文件夹> Team > Refresh/Cleanup。 清理、构建和刷新我的应用程序。 重新启动Eclipse。

使用以上步骤,我能够同步。


在我的例子中,当试图从IDE内提交时出现了错误。当我在浏览器中使用TortoiseSVN执行相同目录的提交时,操作成功。


在我的案例中,我的吞咽表运行导致了问题。停止后,我可以执行清理命令。


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


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

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


遵循以下步骤。

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

2)选择目录下的。svn文件夹,将该文件夹剪切并粘贴到单独的驱动器或单独的位置(svn目录外)

3)现在回到目录-右键单击并选择TortoiseSVN——>Repo-browser

4)签出文件夹(不会进行新鲜签出)。

5)你所有的项目会重新版本,修复svn的内部问题,问题应该会解决。


我最初在尝试用TortoiseSVN签入时遇到了这个问题。最初,TortoiseSVN清理和控制台svn清理都失败了,消息与原始海报相似。

但我的解决方案(偶然发现的)只是等几分钟。我认为TSVNCache在签入时保留了其中一些文件。


在我的例子中,一个后台Java虚拟机实例正在运行,清除哪个清理成功。


在我的情况下,在我关闭Visual Studio并重试清理后,它工作了。


我从我的开发伙伴那里拿走了。svn文件夹,并用这个替换了我的。svn文件夹。这对我很管用。不知道还会有什么后果!


我尝试了这里投票最多的答案和其他一些没有用的答案。我的WORK_QUEUE表是空的,我不能尝试在更高的文件夹清理。有什么工作是以下(这是通过乌龟SVN);

右键单击文件夹 去TortoiseSVN ->清理… 确保“解锁”选项勾选,然后单击“确定”

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


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

我有一个分支,在那里我创建了一个新文件,我在另一个应用程序中打开了这个文件。切换到另一个分支无法删除文件,导致切换失败。这也导致了svn清理失败,但这在Tortoise svn UI中没有显示为原因。

从控制台窗口(在根文件夹上)运行svn cleanup会清楚地显示错误文件\location\file。ext:该进程无法访问该文件,因为该文件正在被其他进程使用

关闭任何打开的文件句柄/ windows并运行控制台svn清理,然后允许清理工作正确地进行。

长话短说,在控制台中运行svn清理,查看更详细的错误。


根据Sigurd V的回答(你应该先尝试一下),一些较大的代码库有多个'。Svn的文件夹,它不一定是根目录中有锁定任务的文件夹。

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

要查找哪些文件夹被锁定运行(将路径\替换为\sqlite.exe):

Get-ChildItem -Path。过滤器”。svn' -递归-隐藏| foreach {$toFind = $_。FullName + "\wc.db";gci $查找| foreach {echo $_。FullName;路径\ \ sqlite.exe $ _。select * from work_queue}}。

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

如果有任何未完成的任务,每次运行(将路径\替换为\sqlite.exe和路径\替换为\.svn\wc.db):

路径\到\sqlite.exe路径\到\.svn\wc.db "delete from work_queue"


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


我也遇到了同样的问题:

1.尝试关闭与svn相关的进程,即tsvnache .exe和TortoiseProc 2.恢复未版本化的文件和删除相同,这是我在svn。 3.使用命令提示符"svn Cleanup "进行清理

最后,当重新启动桌面时,它为我工作,所以重新启动系统为我工作


我看到过svn的几个问题,包括这个问题,通过删除/创建.svn/tmp目录解决了这个问题。然后执行svn cleanup命令


我使用龟SVN。当清理失败时,检查清理选项

确保选中了“打破锁”选项。

清理步骤

鼠标左键在探索文件夹 select 'Tortoise SVN' -> '清理…”菜单 选中“Break Locks”并按“ok”

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


在Eclipse中;

右键单击项目文件夹> Team > Refresh/Cleanup。 在Eclipse窗口中,选择Project菜单项下的clean选项 最后,重新启动Eclipse