項目文件與 SVN 資源庫同步提示錯誤 Attempted to lock an already-locked dir


問題描述

之前為了圖方便,在eclipse中直接把三個jsp文件復制到了eclipse中我新建的一個文件夾中,把svn版本號信息也帶過來了,然后我又刪除了這三個jsp文件,接着先把這三個jsp復制到桌面,然后在從桌面復制到eclipse中我新建的文件夾中,這時是沒有svn版本號信息了,但是在"與資源庫同步"后提交的時候出現了問題:

svn報如下錯誤:

我嘗試在eclipse中刪除這個文件夾也刪不了,報錯:

接着嘗試直接在工作空間的目錄里刪除這個文件夾,但是還是有問題:

如圖所示,這個紅圈中的文件就是我刪除的文件,與資源庫同步后的結果,這時我去提交或更新還是會報錯:Attempted to lock an already-locked dir

解決問題

繼續實踐,后來在網上看到了這個:

然后我就先把文件恢復成了這個藍色加號的狀態,然后先進行了提交操作,之后雖然藍色加號消失了,但是在與資源庫同步之后還是有問題:

出現了這種情況,又提示更新又提示提交的,繼續解決問題,最終方法,其實只需要把工作空間里對應目錄的.svn文件夾里的lock文件刪除就行:

我連同產生的錯誤日志文件一同干掉了,eclipse中的svn插件終於正常了。

問題總結

org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir
svn: Working copy 'D:\wangbo\album2\WebRoot\pages\shareProduct' locked

"svn客戶端異常:試圖鎖定一個已經鎖定的目錄"

        根據提示能夠想到,要提交代碼的時候,SVN 所做的工作中有一個操作步驟是"鎖定",所以才會有"Attempted to lock "這一步,至於"an already-locked dir",就是說當前資源已經是鎖定狀態了,所以無法再次鎖定。按說按照提示"嘗試鎖定一個已經被鎖定的目錄",就像"你去把門鎖上,其實門就是鎖上的",這一命令就沒法執行了。應該只要 "release lock"就可以再次進行鎖定了。然而並非如此,原因就是:此 lock 非彼 lock !你在右鍵 SVN 菜單中能找到所有 " [ * ] lock" 命令都是對 SVN 倉庫所做的操作,不信你試試,都會讓你填操作說明的,說明這是對倉庫資源有改變(這里的lock是指在代碼庫中標記為鎖定狀態,不允許更改);我們這里的鎖定只是在一次代碼提交階段暫時性"鎖定",等提交操作完成了就取消鎖了,是為了保證在提交過程中不被更改(提交代碼需要網絡通信,如果網絡質量不好就比較耗時,你可能在此過程中對正在提交的代碼更改),所以只要 cleanup 上次的鎖定就可以了。

解決方法

一、右鍵選擇 Team > Refresh/Cleanup ,再進行提交操作(前提是具備有效的SVN倉庫連接)就可以了。

二、還有一種方法就是我自己用的了,直接刪除lock文件就可以了(參考我上面的描述)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM