解决svn pritine text not exist问题

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).

 

D:\svn\chenpeng.info>sqlite3 .svn\wc.db “select * from nodes where checksum like ‘%6a2667fc
66745a4e1cabef573e5693007c4d04b0%'”

D:\svn\chenpeng.info>sqlite3 .svn\wc.db “update nodes set presence=’not-present’ where chec
ksum like ‘%6a2667fc66745a4e1cabef573e5693007c4d04b0%'”

D:\svn\chenpeng.info>svn cleanup

D:\svn\chenpeng.info>svn update –force

About 智足者富

http://chenpeng.info

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>