Svn: E155010: Pristine Text A31e85c8da93f9838bde24db70544f9089ed4359 Not Present

今天svn在反覆commit、cleanup時,產生了錯誤如下(我用的是mac電腦,終端)

svn ci aaa -m ''
svn: E155010: Commit failed (details follow):
svn: E155010: Pristine text 'a31e85c8da93f9838bde24db70544f9089ed4359' not present    

解決方案:

  1. http://www.sqlite.com/download.html下載sqlite, 我選擇的是 Precompiled Binaries for Mac OS X (x86),當然大家可以根據自己的設備選擇適當的文件
  2. 解壓之後把sqlite文件放在了我的svn根目錄,這裏是dev,然後執行:

    sqlite3 .svn/wc.db "SELECT * FROM nodes WHERE checksum like '%a31e85c8da93f9838bde24db70544f9089ed4359'"
    

    返回一行對應的數據,說明語句正常,我這裏是(隱藏了文件名):

    這裏是對應的文件|14161|normal|||file|()||$sha1$a31e85c8da93f9838bde24db70544f9089ed4359||14161|1452593165408165|tongkun|17835|1452593209000000|||
    
  3. 修改此節點的狀態:

    sqlite3 .svn/wc.db "UPDATE nodes set presence='not-present' WHERE checksum like '%a31e85c8da93f9838bde24db70544f9089ed4359'"
    

    執行沒問題,說明問題得到了解決

  4. svn up 會發現我們要提交的文件狀態變成’unversioned’狀態了,因爲版本對應的節點日誌變成not-present了,所以svn 會認爲這個版本文件是不存在的,有兩種解決方式:

    • 第一種:把文件重新添加到版本庫 svn add file 、 svn ci file ….
    • 第二種:svn update --force 強制更新
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章