1. 程式人生 > >關於 svn E155004 is already locked 出現原因和解決辦法

關於 svn E155004 is already locked 出現原因和解決辦法

有一天svn突然不能提交程式碼了,當時想為毛公司用的不是git,之後老實百度解決問題

解決方法如下:

1.出錯提示:

   svn: E155004 is already locked,please clean up ………

2.出錯原因:

  SVN 本地更新時,由於一些操作中斷更新,如磁碟空間不夠,使用者取消。可能會造成本地檔案被鎖定的情況。

3.解決辦法:

  1)可以使用SVN clean up來清除鎖定。
  2)如果不是本目錄鎖定,系統提示上一層目錄鎖定,需要到上一層或者根目錄中清除。
  3) 如果在根目錄下都無法clean的話,一般採取的方法是另外找一個目錄重新CHECKOUT。但有時有時SVN目錄下可能有一些自己本地修改的檔案,還未提交到SVN伺服器,這時重新CHECKOUT需要注意本地檔案的備份,並且不要強制覆蓋伺服器上其它人修改的內容。
  4) 如果覺得第3種很麻煩,可以考慮這樣的方法。其實SVN加鎖會在.SVN(隱藏檔案)中生成一個名字叫lock的檔案(無後綴),查詢所有的,手工刪除。然後再嘗試更新,系統可能會提示某個.base檔案無法訪問。找到它,把相關的檔案或其所在的目錄刪除,重新UPDATE。工作量就小多了。

4.clean up的作用

  當Subversion改變你的工作拷貝(或是.svn中的任何資訊),它都會盡可能的小心,在任何修改之前,它把修改的意圖寫到日誌檔案中去,然後執行log檔案中的命令,並且執行過程中在工作拷貝也就是你的從svn檢出的工作區間的相關部分儲存一個檔案鎖,防止Subversion客戶端在變更過程中訪問工作拷貝。如果Subversion的操作中斷了(比如:程序被殺死,機器掛了),日誌檔案會被儲存在硬碟上,通過重新執行日誌檔案,Subversion可以完成上一次開始的操作,你的工作拷貝可以回到一致的狀態。
  這就是svn clean up所做的:它查詢工作拷貝中的所有遺留的日誌檔案,刪除程序中工作拷貝的鎖。如果Subversion告訴你工作區間中的一部分已經被“鎖定”了,你就需要執行這個命令了。