首页 文章

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

提问于
浏览
213

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

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

如果我更新它说:

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

我如何解开这个?

29 回答

  • 1

    在我的情况下,我有gulp-watch运行导致问题 . 停止后我可以执行清理命令 .

  • 91

    在我关闭Visual Studio并重新尝试CleanUp之后,在我的案例中,你的工作很愉快

  • 1

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

  • 0

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

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

  • 2

    添加一个已经在SVN中的jar后,我遇到了这个问题,并添加了相同名称的新版本 .

    在Eclipse中我尝试了这个

    • 右键单击文件夹>团队>刷新/清理 .

    • 清理,构建和刷新我的应用程序 .

    • 重启Eclipse .

    使用上述步骤,我可以进行同步 .

  • 1

    对我有用的解决方法:

    • 剪切你的内容目录并将其复制到另一个文件夹 .

    • 从空文件夹的命令行运行清理 .

    • 将文件复制回原始文件夹中 .

    完成,但我无法解释为什么会发生这种情况 . 如果不删除文件,则cleanup命令表示他无法读取/写入这些文件 .

  • 9

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

    • 将您的文件夹和文件复制到另一个地方,比如文件夹(我最近更改了文件,承诺失败并导致了解决的问题)

    • 查看新的工作副本

    • 将已更改的文件从文件夹复制到工作副本并覆盖现有文件 . 提交/更新现在应该有效

  • 24

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

  • 1

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

  • 0

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

    • 右键单击文件夹

    • 转到TortoiseSVN - >清理......

    • 确保勾选 Break Locks 选项,然后单击“确定”

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

  • 0

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

  • 11

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

  • 318

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

  • 0

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

  • 108

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

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

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

  • 18

    通常不需要新的结账或复印 .

    我刚刚在这个问题的帮助下解决了与错误"previous operation has not finished"有关的类似问题(Link

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

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

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

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

    通过运行

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

    所有旧操作都将从工作队列中删除,并且错误消失 . 不需要新的结账或任何东西

  • 0

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

  • 2

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

  • 2

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

  • 0

    我也遇到了同样的问题:

    1.尝试杀死与svn相关的进程,即TSVNCache.exe和TortoiseProc 2.恢复未版本控制的文件并删除它,我在svn中有 . 3.cleanup使用命令提示符“svn cleanup”

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

  • 1

    我最初遇到这个问题,试图用TortoiseSVN登记 . 最初,TortoiseSVN清理和控制台svn清理都失败了与原始海报类似的消息 .

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

  • 4

    按照以下步骤 .

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

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

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

    4) Checkout 文件夹(它不会执行新的结账) .

    5)所有项目将再次进行版本控制,它将修复svn的内部问题,问题应该解决 .

  • 0

    在我的例子中,后台Java虚拟机实例正在运行,导致哪个清理成功 .

  • 2

    我从我的开发人员那里获取了.svn文件夹,用这个替换了我的.svn文件夹 . 它对我有用 . 不知道可能是什么其他后果!

  • 0

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

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

  • 1

    当您尝试SVN切换/清理时文件仍处于打开状态时,可能会发生这种情况 .

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

    从控制台窗口(在根文件夹上)运行 svn cleanup 清楚地显示错误 file\location\file.ext: The process cannot access the file because it is being used by another process

    关闭所有打开的文件句柄/窗口并运行控制台 svn cleanup 然后允许清理正常工作 .

    长话短说 svn cleanup 在控制台看到更详细的错误 .

  • 1

    继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"

  • -3

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

  • 1

    请点击此链接 . 它完全解决了你的问题 .

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

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

相关问题