最近搭建了新的quick check server, workspace也是新的。但是get latest (unshelve)的時候,出現以下錯誤:
can't clobber writable file ........
在網上,各種搜索解決方案:
大多說,將這個文件檢查一下是不是readonly的,如果不是設置成readonly的!
我試驗了一下,果然可以!!!
但是,引起check是自動程序,readonly的屬性幾乎是隨機,所以沒辦法每次報錯了再去改單個文件的屬性設置為readonly。繼續搜,發現p4默認的機制是不能同步覆蓋本地的可讀寫文件的,
這個看起來相當的詭異,因為一般人估計都不知道他執行”get latest“的時候,其實是大多數帶有失敗的”必然的“,為什么這么說,因為軟件自動生成的文件或者其他地方拷貝來的殘留文件都會導致你”get latest“失敗,因為p4 只會覆蓋readonly的文件,
因為它認為readonly的文件是你不在編輯的文件,它覆蓋是不會導致你文件丟失的。
想想這樣的邏輯也是合情合理,可是一般人怎么知道我獲取了最新,原來是”抱着如此美好的希望,卻不知,就算是我不給你最新,也是為了你好啊!!!“。
對於quick check server,只作為unshelve --->check---->revert 的機器,是不會有人在上面改代碼的,假設情景是這樣,那么我就不需要p4 給我那么大的空間,害怕修改我的本地文件,而不給我最新。
所以,我要p4 整個文件夾download下來,覆蓋掉本地,以便拿最新的代碼測試。 找到一個文章,很好的滿足需求:
http://easyprograming.com/eclipse-articles/57-fix-the-cant-clobber-writable-file-error-in-perforce-version-control-system/

這個文章,還給了eclipse里如何修改這個設置,值得推薦。
