在軟件配置管理工具 Rational ClearCase中,當你創建一個VOB庫后,將自動產生一個目錄:lost+found,這個目錄主要存放不再包含在VOB中任何一個目錄版本中的元素(在ClearCase中,元素包括文件和目錄),這句話聽起來有些拗口,呵呵。簡單來說,lost+found目錄類似于Windows的回收站,所不同的是:在windows中進行刪除操作后,文件將被放入回收站;而在ClearCase中,當一個元素在VOB中與其他元素的依賴關系被全部刪除時,它才會被放入lost+found目錄。
二、什么情況下 ClearCase的元素會被放入lost+found目錄
當你做如下操作的時候, VOB中的元素將被放入lost+found目錄:
1. 使用 rmname刪除一個元素與其他元素的最后一個依賴關系
Rename命令不會刪除VOB中的元素,只會把該元素與父文件夾之間的關系刪除。如果一個元素與其他元素的關系全部被renamed,沒有路徑能訪問到該元素,這時這個元素將被自動放入lost+found目錄中。如果這個元素是目錄時,那么 它里面包含的子目錄與文件都會被放入 lost+found目錄。
2. 使用 rmver、 rmbranch 或rmelem刪除一個目錄版本最后一個依賴關系
在 Rational ClearCase 中,目錄也做為配置項管理,如果你把目錄刪除了,其下的子目錄與文件就會沒有正確的鏈接,這時這些子目錄與文件會放到 lost+found 中。如果你確實不需要,可以在 lost+found 目錄對它們進行徹底清除。反之可以恢復,以避免誤操作帶來的損失。
3. 當一個目錄處于 checkout狀態時,如果在該目錄中創建新元素,然后又將處于checkout狀態的這個目錄進行了 undo checkout操作,這種情況下你新建的那個元素將被放入lost+found目錄,因為它已經找不到對應關系了。
三、 lost+found中元素的命名規則
當一個元素被放入 lost+found目錄后,我們會看到它的名字很長,好像很亂,其實ClearCase對它有一套統一的命名規則。當元素被放入lost+found目錄后,名字將增加一個OID(Objedct ID),格式為:element_leaf_name.id_number。
舉個例子:
文件放入 lost+found前的名稱:build.log;
文件放入 lost+found后的名稱:build.log.3e105a5cad674d0db12ad477fd11026c;
它的 element_leaf_name為build.log,3e105a5cad674d0db12ad477fd11026c是id_number。
四、 lost+found目錄的特點
lost+found目錄有幾個獨有的特性:
1. lost+found目錄本身不能進行checkout操作。
2. 該目錄里面的內容可以進行修改,即進行檢入、檢出操作。
3. 在 lost+found目錄上無法創建分支,但是目錄里面的內容可以創建。
五、 lost+found中元素的處理方法
一個有經驗的配置管理人員不應該把文件移到 lost+found中,而應定期把文件歸回原位或者清除lost+found文件夾中不再使用的文件。
為了節約空間,定期清理 lost+found目錄的方法是必要的,方法如下:
1. 如果 lost+found目錄中的內容仍然有用,可以將其移出并恢復:
• 將 lost+found中的內容移動到本VOB庫中,使用命令:cleartool mv;
• 將 lost+found中的內容移動到其他VOB庫中,使用命令:cleartool relocate;
誤刪除了元素后,不要著急,看看能否在 lost+found目錄中找到并恢復它。如果被徹底刪除,再通過備份的VOB庫來恢復也不遲。
2.使用 cleartool rmelem 命令將不再使用的元素刪除;
如果 lost+found中的內容確實不再需要,可以使用rmelem徹底清除,以節約VOB的空間,就像你經常整理Windows的回收站一樣。 需要強調的是,使用 rmelem 命令前一定要慎重,因為該命令將永久刪除元素。
六、總結
平時大家在工作中可能不太關注 lost+found目錄,其實它在文件恢復、節約工作空間方面都有不少的價值,希望本文能對你有所啟示和幫助。
原文轉自:http://www.anti-gravitydesign.com