2014-09-25 158 views
0

我一直使用SED(我忘了添加目錄排除)意外破壞我的.svn目錄,當我嘗試更新或提交此得到幸福SVN錯誤:svn: Checksum mismatch for '.svn/text-base/foo.bar';只更新.svn目錄

(開一個側面說明,我希望svn信任服務器足以忽略本地文本庫文件,如果有一個不匹配,而不是剛剛死亡)

我目前的解決方案是結帳到一個不同的目錄,然後刪除除了.svn使用:sudo find . -type f -not -iwholename "*.svn*" -exec rm -r {} \;然後只是遞歸地將這些文件cp回原始目錄。

是否有反正使用svn來從服務器中取出.svn文件並替換當前的文件,或者我堅持檢出,刪除,然後粘貼?

+0

複製有關修理你的真正的問題是什麼?爲什麼你一直用sed破壞你的.svn目錄?解決這個問題,你不需要擔心它。你永遠不應該觸摸.svn的內容! – Ben 2014-09-26 14:32:13

+0

原因不是編碼問題(我知道如何排除目錄),這只是我運行sed時一直忘記這麼做。通知我說'意外'。 – TheBat 2014-09-26 15:30:21

+0

您使用的是什麼版本的SVN?在SVN 1.8下我的工作副本中沒有看到.svn/text-base。我嘗試在.svn/pristine中破壞一些文件,相反,思考也許「svn cleanup」會修復一些問題,但實際上「svn update」在我的情況下沒有錯誤地工作(儘管無論是更新還是清理都不會將「原始」文件還原到正確的狀態)。對於它的價值,.svn/pristine下的文件沒有與它們對應的工作副本數據中的文件相匹配的文件擴展名。 – Ben 2014-09-26 20:14:01

回答

0

Is there anyway using svn to just gab the .svn files from the server and replace the current ones

出於同樣的WC它可以在某種程度上棘手,但我認爲結帳新的空WC(只有.svn它DIR)是可以接受的解決方案。

我爲了得到這樣的廁所,你必須調用結賬與--depth 'empty'參數和產生的.svn文件到破WC

+0

這只是設置結帳深度爲0,所以沒有一個孩子被下載。我可以用這個來編寫一個小腳本來遞歸地工作,查看http://svnbook.red-bean.com/en/1.7/svn.advanced.sparsedirs.html – TheBat 2014-09-29 16:17:08