SVN ---文件加鎖,執行clean up命令

1、SVN 中 clean up 的功能服務器


     當Subversion改變你的工做拷貝(或是.svn中的任何信息),它會盡量的當心,在修改任何事情以前,它把意圖寫到日誌文件中去,而後執行 log文件中的命令,而且執行過程當中在工做拷貝的相關部分保存一個鎖,防止Subversion客戶端在變動過程當中訪問工做拷貝。若是 Subversion的操做中斷了(舉個例子:進程被殺死了,機器死掉了),日誌文件會保存在硬盤上,經過從新執行日誌文件,Subversion能夠完成上一次開始的操做,你的工做拷貝能夠回到一致的狀態。svn


       這就是svn clean up所做的:它查找工做拷貝中的全部遺留的日誌文件,刪除進程中工做拷貝的鎖。若是Subversion告訴你工做拷貝中的一部分已經「鎖定」了,你就須要運行這個命令了。spa


2、本地文件鎖定,使用「清除」命令日誌


    SVN本地更新時,因爲一些操做中斷,如磁盤空間不夠,用戶取消等,可能會形成本地文件被鎖定的狀況。這時候不管你在執行SVN的更新、上傳、添加等子命令都會提示「**locked」的錯誤,如圖:進程


    

    

通常出現這種狀況的解決方法:it

1、可使用SVN clean up來清除鎖定io

2、若是不是本目錄鎖定,系統提示上一層目錄鎖定,須要到上一層或者根目錄中清除。meta

3.若是在根目錄下都沒法 clean的話,通常採起的方法是另外找一個目錄從新CHECKOUT。但有時有時SVN目錄下可能有一些本身本地修改的文件,還未提交到SVN服務器, 這時從新CHECKOUT須要注意本地文件的備份,而且不要強制覆蓋服務器上其它人修改的內容。方法

4.其實SVN加鎖會在.SVN(隱藏文件)中生成一個名字叫lock的文件(無後綴),查找全部的,手工刪除。而後再嘗試更新,系統可能會提示某個.base文件沒法訪問。找到它,把相關的文件或其所在的目錄刪除,從新UPDATE。im

5.在相應的目錄中,好比我在 更新metasploit的「/opt/metasploit3/msf3/lib/active_support/core_ext」這個目錄時就遇到 了相似的狀況,把.SVN子目錄裏(注意,「.」目錄是個隱藏目錄,須要選擇「文件夾選項」→「查看」→「顯示隱藏文件」菜單項)面log文件刪除,就可 以了。而後繼續作svn cleanup命令。


第4種和第5種方式,未找到相關locked文件 和 log文件,不知道是否是SVN版本的問題。本地文件加鎖,「清除命令clean up」很好使。

相關文章
相關標籤/搜索