今天svn在反复commit、cleanup时,产生了错误如下(我用的是mac电脑,终端)
svn ci aaa -m ''
svn: E155010: Commit failed (details follow):
svn: E155010: Pristine text 'a31e85c8da93f9838bde24db70544f9089ed4359' not present
解决方案:
- 在http://www.sqlite.com/download.html下载sqlite, 我选择的是 Precompiled Binaries for Mac OS X (x86),当然大家可以根据自己的设备选择适当的文件
- 解压之后把sqlite文件放在了我的svn根目录,这里是dev,然后执行:
sqlite3 .svn/wc.db "SELECT * FROM nodes WHERE checksum like '%a31e85c8da93f9838bde24db70544f9089ed4359'"
返回一行对应的数据,说明语句正常,我这里是(隐藏了文件名):
这里是对应的文件|14161|normal|||file|()||$sha1$a31e85c8da93f9838bde24db70544f9089ed4359||14161|1452593165408165|tongkun|17835|1452593209000000|||
- 【Linux|Svn: E155010: Pristine Text A31e85c8da93f9838bde24db70544f9089ed4359 Not Present】修改此节点的状态:
sqlite3 .svn/wc.db "UPDATE nodes set presence='not-present' WHERE checksum like '%a31e85c8da93f9838bde24db70544f9089ed4359'"
执行没问题,说明问题得到了解决
- svn up 会发现我们要提交的文件状态变成’unversioned’状态了,因为版本对应的节点日志变成not-present了,所以svn 会认为这个版本文件是不存在的,有两种解决方式:
- 第一种:把文件重新添加到版本库 svn add file 、 svn ci file ….
- 第二种:svn update --force 强制更新
推荐阅读
- Linux|109 个实用 shell 脚本
- linux笔记|linux 常用命令汇总(面向面试)
- Linux|Linux--网络基础
- linux|apt update和apt upgrade命令 - 有什么区别()
- linux|2022年云原生趋势
- Go|Docker后端部署详解(Go+Nginx)
- 开源生态|GPL、MIT、Apache...开发者如何选择开源协议(一文讲清根本区别)
- GitHub|7 款可替代 top 命令的工具