1. 程式人生 > >無法複製/移動‘XXX.svn-base'到'XXX.tmp':系統找不到指定檔案。

無法複製/移動‘XXX.svn-base'到'XXX.tmp':系統找不到指定檔案。

這個錯誤資訊通常在你更新工作拷貝時出現,可能的原因有兩個:

  • 版本庫中有兩個檔案的名字只是大小寫不同,這在Windows下是允許簽出的,因為Windows的檔案系統是大小寫不敏感的。很可能其中一個檔案是誤新增的,所以你要找出是哪一個,然後刪除它,以確保不會把更改提交到錯誤的檔案。
  • 某個檔案的檔名是非法的(對Windows來說非法),比如,"con", "lpr", "com"都是非法的,因為這些都是裝置名。當然,含有"//*?:|"和其它特殊字元在Windows(NTFS 和 FAT)也是不允許的。

是,我們知道這個錯誤資訊對解決問題沒什麼實質性的幫助,但這個錯誤資訊是來自Subversion庫的,我們改不了。

有幾個辦法可以避免這個問題:

Subversion 是針對大小寫敏感的檔案系統(比如 Linux )設計的,這在大小寫不敏感的Windows下有時就會有問題。一個典型的例子是,重新命名檔案時,如果檔名僅有大小寫不一樣,如Makefile改成 MAKEFILE。在工作拷貝中要這麼幹就有困難,因為Subversion在很短的一瞬間內需要讓這兩個名字並存,而Windows沒辦法支援。

目前為止最簡單的方法是用版本庫瀏覽器來重新命名:

  1. 提交工作拷貝中的更改。
  2. 在版本庫瀏覽器中將檔名由UPPERcase改為upperCASE。
  3. 更新你的工作拷貝。