解决svn pritine text not exist问题

本文提供了一种解决SVN工作副本中丢失原始文件问题的方法。通过使用SQLite查询找到相关文件路径,并更新数据库记录为‘not-present’状态,再运行清理命令及强制更新,使SVN能够重新获取丢失的文件。
[转自:http://hxfcalf.blog.163.com/blog/static/2157554820133711237590/]  
http://stackbox.org
 
1) Get an sqlite executable (for Windows: download a pre-compiled
binary from http://www.sqlite.com/download.html). Put it somewhere in
your PATH.
2) Open a command prompt and go to the root of your working copy. Execute:
sqlite3 .svn\wc.db "select * from nodes where checksum like '%d9b41b57756396b9cb236801fc02e0da0a83dffe'"
This should return exactly 1 row from the svn working copy database.
You can see in that row the local path that's related to that pristine file.
3) Now execute:
sqlite3 .svn\wc.db "update nodes set presence='not-present' where checksum like '%d9b41b57756396b9cb236801fc02e0da0a83dffe'"
Now you've changed the presence value of that particular row to "not-present", giving svn a chance to recover from the actually
missing pristine file.
4) "svn cleanup" again. There might be more missing pristines. Repeat steps 2 and 3 for them.
5) Finally:
svn update --force
This makes svn actually restore the pristines. The --force is there because svn will also try to install the working versions 
of the "not-present" files. But those files are still there. Without --force you'll get tree conflicts on those files because of the "unversioned
obstructions" that svn thinks they are (because of "not-present" svn thinks they shouldn't be there).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值