15

我正在尝试使用 TortoiseSVN 1.8.1 将文件添加到 SVN 存储库。我右键单击文件并选择 TortoiseSVN->Add。然后我在弹出的窗口中选择所有文件,然后单击确定。单击“确定”后,会弹出另一个对话框,所有文件似乎都已成功添加,因为每个文件旁边都显示“已添加”,最后显示“已完成!” 在底部。我单击确定,然后右键单击父目录并单击“提交”。我填写了消息框并确保检查了我添加的所有文件,并且它们都在“状态”下显示“已添加”。最后,我单击“确定”。像往常一样会弹出一个框,说“您还没有输入问题编号”,然后我单击“没有问题编号继续”。

Error: Commit failed (details follow):  
Error: File '%Path to my file%' is  
Error:  out of date  
Error: File '%File name%' already exists  
Error: You have to update your working copy first.  

我成功更新了我的工作副本,没有任何变化。我也做了一个成功的清理。我尝试删除父目录并完全删除基本文件夹并重新检查基本文件夹。

我检查了存储库,那里没有包含正在添加的文件的文件名的文件。

以上所有都是通过gui。使用命令提示符我得到以下信息:

svn status:
svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted

svn cleanup 5.0.1:
svn: E155009: Failed to run the WC DB work queue associated with '%PathToBaseRepoFolder%', work item 12841 (sync-file-flags 56 %Path to another file I was unable to add from the base repo folder%)
svn: E720003: Can't set file '%Full path to the other file I was unable to add%' read-write: The system cannot find the path specified.

如果我从 gui 进行更新和清理,则表示两者都成功。

我们使用 http://

我相信权限是正确的。

4

5 回答 5

40

发生在我身上几个现在多次使用 TortoiseSVN 1.8.2 - 1.8.10。我发现这篇博客文章曾经解决了这个问题,直到它再次弹出。这让我非常恼火,以至于我编写了一个从桌面运行的快速 bat 文件脚本。

先决条件

  1. 下载并解压sqlite3 shell 工具,例如sqlite-shell-win32-x86-3080803.zip
  2. 调整以下命令中的路径以匹配您的环境

修复(手动)

如果您只想测试这是否有帮助,请运行它

  1. 在 CMD 中做C:\Downloads\sqlite3.exe "C:\src\.svn\wc.db"
  2. 一旦在 sqlite shell 中运行delete from WORK_QUEUE;
  3. 运行乌龟 svn clean up

修复(自动)

如果上一步对您有用,请考虑使用这些步骤使流程自动化

  1. 转到您的.svn文件夹,例如C:\src\.svn
  2. 在那里复制 sqlite3 shell 工具
  3. 在该文件夹中创建一个fix-svn.bat文件
  4. 插入脚本代码,并调整路径

    "C:\src\.svn\sqlite3.exe" wc.db "delete from WORK_QUEUE"
    "C:\Program Files\TortoiseSVN\bin\svn" cleanup "C:\src"
    
  5. 保存 bat 文件并创建桌面快捷方式

  6. 下次需要修复时,只需在桌面上运行快捷方式即可
于 2013-09-24T11:22:45.753 回答
9

问题是我更新到版本 1.8.1 有一个错误。我下载了 1.8.0 版,它工作正常。

于 2013-08-02T12:48:17.340 回答
2

对发布候选版本的更新为我解决了这个问题。

于 2013-10-10T13:33:05.827 回答
2

好的,我不知道这是否是一个问题。当使用稀疏结帐时,我已发送此错误。您可以通过标志调整结帐期间看到的文件,--depth并通过标志调整更新时看到的文件--set-depth。如果您--set-depth=exclude在某些文件上,尝试添加文件时会看到此错误。

从命令行试试这个。从工作目录的根目录:

$ svn cleanup
$ svn update --set-depth=infinity
$ svn status

确保所有这三个命令都有效。然后,尝试提交。

于 2013-08-01T19:43:48.097 回答
0
sudo svn cleanup 

解决我的问题

于 2015-02-04T20:14:18.450 回答