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 强制更新
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章