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

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

如果我更新它说:

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

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


当前回答

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

其他回答

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

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

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

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

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

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

通过运行

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

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

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

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

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

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

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

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

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