无法运行与文件关联的WC DB工作队列

问题描述 投票:43回答:10

我不假思索地通过我的osx系统添加并提交了一个文件,其中有一个问号而没有考虑这会对Windows产生什么影响。在我做更新时在Windows上失败,因为它无法创建带有?的文件?因此我回到了我的osx系统并对该文件进行了svn重命名,但是在Windows上这没有用,因为svn经历了所有步骤的历史记录,将工作区带到了头部修订版。不用说我被困了,任何想法我怎么能解决这个问题?

这是我更新时的当前svn错误日志(尝试使用Tortoise SVN和命令行,两者都是相同的):

svn: E155009: Failed to run the WC DB work queue associated with 'F:\Devel\bc\dev\trunk\appShare\media\frontend\?_12x15.png', work item 53314 (file-install appShare/media/frontend/?_12x15.png 1 0 1 1)
svn: E720123: Can't move 'F:\Devel\bc\dev\trunk\.svn\tmp\svn-68A36D23' to 'F:\Devel\bc\dev\trunk\appShare\media\frontend\?_12x15.png': The filename, directory name, or volume label syntax is incorrect.

每次我这样做,我必须删除wc.db中WORK_QUEUE表中的记录,然后在svn让我尝试别的东西之前进行清理。

svn
10个回答
70
投票

感谢this reference提供的解决方案适用于Mac,svn通过brew安装。

cd {work-dir-base}
sqlite3 .svn/wc.db "delete from work_queue"

这是另一个blog entry dealing with this issue


0
投票

要解决Windows 7中的问题,假设在您的文件夹X中不会清除,则会出现另一个名为A的文件夹,其中会出现问题。只需在其他地方检出文件夹A并将其复制回来(当然没有.svn缓存文件夹)到X然后运行清理和更新等。


9
投票

那就是在包含命名错误的文件的Windows框中通过svn删除文件夹。如果它看到一个尚未提交的本地删除,这必须告诉svn不要更新该文件夹。如果这样做,请务必先备份文件,以便重新创建文件夹并再次添加所有文件(当然正确命名)。

具体而言:

  1. SVN将其他计算机上的文件重命名为右文件名
  2. SVN删除Windows计算机上包含命名错误的文件的文件夹。
  3. 更新您的工作副本,现在可以正常工作。
  4. 解决重命名和删除之间的冲突。
  5. 还原您的本地修改(SVN删除,尚未提交)。

8
投票

这些是我为消除此错误所采取的步骤

  1. https://www.sqlite.org/download.html下载sqlite,下载Windows的预编译二进制文件。我下载了sqlite-tools-win32-x86-3200100.zip,其中包含sqlite的.exe文件
  2. 解压缩zip并添加将sqlite3.exe保存到windos PATH变量的路径。
  3. 现在导航到您拥有.svn目录的位置
  4. 在命令窗口中打开并执行sqllite3 .svn / wc.db“从work_queue中删除”
  5. 现在继续运行你的svn清理,一切都应该正常工作。

5
投票

我也遇到过类似的问题:

我删除了一个本地文件夹(已检出svn文件)。在此之后,没有任何svn命令工作正常,即使从cmd提示符(admin),svn清理也无法正常工作。

固定:

  1. 我创建了一个虚拟文件,其错误'svn:E155009:无法运行与'相关联的WC DB工作队列即将到来。
  2. 然后我在cmd行中运行svn cleanup,发现同样的错误,因为无法读取文件
  3. 对步骤2中找不到的文件重复上述步骤。
  4. svn清理,它的工作原理!

4
投票

我们遇到了这个问题,因为MalwareBytes Ransomware Protection与其他一些MalwareBytes组件一起打开了。

其他人报告称Bitdefender也在MacOS和Windows上引发了这个问题。

我们看到的实际错误是

无法将'xxx'移动到'yyy':访问被拒绝。

它还打破了运行清理操作的能力。

这似乎是一种竞争条件 - 违规文件每次都会改变。禁用Ransomware Protection组件解决了该问题。


3
投票

在我的例子中,创建一个.svn/tmp目录解决了这个问题


2
投票

只需在工作区中删除.svn \ tmp.Did为我工作。


1
投票

关闭所有可视工作室实例可以解决问题。


0
投票

我只是在记事本中打开文件(在我的情况下是一个.less文件),给它一个修改(例如输入)并保存文件。之后,我能够清理。

© www.soinside.com 2019 - 2024. All rights reserved.