2013-08-01 42 views
15

我想使用TortoiseSVN 1.8.1將文件添加到SVN存儲庫。我右鍵點擊這些文件並選擇TortoiseSVN-> Add。然後選擇彈出窗口中的所有文件,然後單擊確定。點擊確定後,彈出另一個對話框,並且所有文件似乎都已成功添加,因爲它在每個文件旁邊顯示「已添加」,並最終顯示「已完成!」在底部。我點擊確定,然後右鍵點擊父目錄並點擊「提交」。我填寫了消息框,並確保我添加的所有文件都被檢查,並且他們都在「狀態」下說「添加」。最後,我點擊「確定」。正如通常所說的那樣,一個盒子彈出,顯示「您沒有輸入問題號碼」,然後點擊「沒有問題號碼繼續」。在彈出的對話框旁邊有一行寫着「添加」與我試圖加後跟文件:TortoiseSVN不會允許我添加任何文件

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://

我相信權限是正確的。

+1

是什麼'SVN status'說明了什麼?你做了一個'svn update'。對?沒有衝突?你的服務器使用什麼類型的協議?它是'file://','http://'或'svn:'?服務器上存儲庫中文件的權限是否正確? –

+0

查看我的問題的更新。 –

+0

有趣的帖子與相同的錯誤消息:http://svn.haxx.se/users/archive-2013-07/0125.shtml。這可能是編碼/語言相關?您在命令行上成功運行了'svn cleanup'嗎? –

回答

9

問題是我更新到版本1.8.1,它有一個錯誤。我下載了1.8.0版本,它工作正常。

+1

我有一些與TortoiseSVN 1.8.2相同的問題(不是所有文件)。我重新安裝了TortoiseSVN 1.8.0,它現在可以工作。 – Ubikuity

+0

這個問題似乎仍然存在於1.8.3中,只是在合併到主幹期間得到它,取下了主幹並再次檢查出來,並且被淹沒了,並且工作正常! – Peter

2

好的,我不知道這可能是一個問題。我已經發現這個錯誤發生在稀疏結賬被使用。您可以通過--depth標誌來調整您在結帳時看到的文件,並通過--set-depth標誌進行更新。如果您在某些文件上使用--set-depth=exclude,如果您嘗試添加文件,則會看到此錯誤。

從命令行嘗試此操作。從你的工作目錄的ROOT:

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

確保所有這三個命令都起作用。然後,嘗試提交。

39

發生在我身上夫婦現在多次與TortoiseSVN 1.8.2 - 1.8.10。我發現this blog post一次解決了這個問題,直到它再次彈出。它讓我非常惱火,所以我寫了一個快速的bat文件腳本,我從桌面上運行。

先決條件

  1. 下載並解壓縮sqlite3外殼工具,例如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清理

修正(自動)

如果前面的步驟爲你工作,考慮這些步驟

  1. 轉到自動化過程的.svn文件夾,例如C:\ SRC \ .svn文件
  2. 複製sqlite3的外殼工具有
  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. 下一次您需要修復它,只需在桌面上運行快捷方式
+0

如何退出/退出sqlite命令行:'.exit' – malisokan

+1

對不起,在答案中,但文本格式並沒有讓它變得很明顯。現在更新。 '.quit'和'.exit'都可以工作。 – oleksii

+0

我在使用svn 1.8.10客戶端從本地更改的工作目錄創建功能分支,然後在嘗試解決結果衝突時執行'svn switch'後遇到了此問題。我想我從錯誤的版本中做了功能分支。 –

2

更新至release candidate已解決了我的問題。

+0

Thx,爲我解決了它。該鏈接似乎已經過時。當前的候選版本可以在以下目錄中找到:http://nightlybuilds.tortoisesvn.net/1.8.x/x64/full/ – tea2code

0
sudo svn cleanup 

解決我的問題

相關問題