2010-11-30 54 views
5

按照Subversion documentation沒有匹配的鎖定令牌

提交完成後,使用svn 狀態顯示鎖定令牌沒有 工作副本不再存在。 這是SVN 的標準行爲犯,它搜索的工作拷貝 (目標或列表,如果你提供 這樣的列表)的本地修改 ,並在此步行到 發送所有鎖定令牌它 遭遇服務器作爲提交 事務的一部分。提交 成功完成後,所有提到的 存儲庫鎖都被釋放 - 即使在未提交的文件上也是如此。這意味着 阻止用戶徘徊 關於鎖定或從持有鎖 太長。

在努力確保這一功能的作品,我不斷地在嘗試提交已在我的工作拷貝鎖的文件更改時,此消息:

svn: Cannot verify lock on path '/test/test'; no matching lock-token available

現在,我已經測試過這種情況在Windows上有兩個不同的工作副本,並且在RHEL上有一次,並且每次都有一個新的檢出並且沒有事先鎖定文件的錯誤。如果我解鎖文件,然後提交,沒有問題,提交發生。如果我使用svn:needs-lock屬性,則在解鎖文件之前嘗試提交時出現相同的錯誤。

我敢肯定,錯誤不是在客戶端發生,而是在服務器端發生。我認爲這可能是客戶端沒有將本地授權令牌傳遞迴Subversion服務器。但是,我已經嘗試過三種不同的客戶端(2 CLI和Subclipse)。因爲它失敗了三個不同的客戶端,我感覺客戶端將本地授權令牌傳回服務器。所以我很確定服務器是我需要解決這個問題的地方,但是哪裏?

+0

只是爲了澄清`svn lock test/test; echo「foo」>> test/test; svn ci -m'簽入鎖定'test/test`時失敗? – tobyodavies 2010-12-09 00:20:51

+0

在Unix和Windows上(對平臺進行了一些修改),該命令失敗,'svn:無法驗證路徑上的鎖'/ test/test';在兩個系統上都沒有可用的匹配鎖定令牌。 – jgifford25 2010-12-09 14:32:12

回答

2

嗯,我做了一些四處看看你的問題,發現 this

它說要做的是檢查文件是否只讀,如果它們是,SVN認爲文件被鎖定並且沒有匹配的鎖定令牌將永遠不可用(因爲它實際上沒有鎖定)。 因此,如果它們是隻讀的,請嘗試將它們設置爲可寫。

如果這不起作用,請看一下here

+0

謝謝,我在自己的研究中發現了與此問題相同的鏈接。很抱歉,當提交發生時,文件未設置爲只讀,並且存在鎖定時工作副本尚未銷燬並重新創建。我敢打賭,這個問題不在客戶端,因爲您提供的兩個鏈接建議,而是在服務器端。 – jgifford25 2010-12-06 14:42:01

+0

第一個鏈接現在已經失效 – Royce 2012-05-17 23:00:37

0

也許服務器上的存儲庫被損壞。在服務器上使用svnadmin轉儲存儲庫,將其加載到臨時存儲庫中的另一臺計算機上,並嘗試使用臨時存儲庫執行相同的操作。

如果修復了錯誤,請備份舊的存儲庫並將其替換爲臨時存儲庫。

11

我有同樣的問題:

svn: E160037: Commit failed (details follow): 
svn: E160037: Cannot verify lock on path '/QHG3/trunk/kernel/Activator.cpp'; no matching lock-token available 

我能夠「竊取」鎖解決這個問題:

svn lock --force AltMoverPop.cpp 
1

喔人..我搜索發佈到支柱。 對我來說問題是相同的「不工作鎖」,

右鍵單擊 - >獲取鎖 - >檢查「偷竊鎖」。 修改了這個文件,並簽入了。 對我來說,暫時是這樣吧