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

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

如果我更新它说:

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

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


当前回答

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

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

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

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

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

其他回答

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

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

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

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

遵循以下步骤。

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

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

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

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

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

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