我在工作文件夹中进行了很多更改,并且在尝试进行更新时遇到了麻烦.
现在,当我发出'svn cleanup'时,我得到:
>svn cleanup .
svn: In directory '.'
svn: Error processing command 'modify-wcprop' in '.'
svn: 'MemPoolTests.cpp' is not under version control
Run Code Online (Sandbox Code Playgroud)
MemPoolTests.cpp是另一个开发人员添加的新文件,在更新中被删除.它以前在我的工作文件夹中不存在.
有什么我可以做的事情来尝试前进,而不必检查存储库的新副本?
澄清:感谢有关将目录移开并删除新副本的建议.我知道这是一个选项,但它是我想避免的一个,因为嵌套了几个目录很多变化(这应该是一个分支......)
我希望有一种更积极的方式来进行清理,也许是某种程度上强制文件SVN在回到已知状态时遇到了麻烦(我尝试删除它的工作副本......这没有帮助).
小智 223
什么时候开始不是一个选择...
我删除了.svn目录中的日志文件(我还删除了有问题的文件.svn/props-base),进行了清理,并恢复了我的更新.
JKo*_*plo 112
随着SVN 1.7的发生,情况发生了变化,移植到数据库工作副本实现时,删除.svn目录中日志文件的流行解决方案是不可行的.
这是我做的似乎工作:
这一切都有点混乱,流程明智.基本上,我们正在做的是删除损坏的.svn,然后为同一个结帐路径创建一个新的.svn.然后,我们将这个新的.svn移动到我们的旧工作目录并将其更新到repo.
我刚刚在TSVN中做到这一点,它似乎工作正常,不需要完整的结帐和下载.
-Jody
Siv*_*iva 107
看一眼
从上面的链接修复摘要(感谢Anuj Varma)
从http://www.sqlite.org/download.html安装sqlite命令行shell(sqlite-tools-win32)
sqlite3 .svn/wc.db "select * from work_queue"SELECT应该将您的违规文件夹/文件显示为工作队列的一部分.您需要做的是从工作队列中删除此项.
sqlite3 .svn/wc.db "delete from work_queue"而已.现在,您可以再次运行清理 - 它应该可以工作.或者,您可以在提示运行清理(添加新文件等)之前直接执行您正在执行的任务.
Ken*_*Ken 16
这个答案仅适用于1.7之前的版本(感谢@ŁukaszBachman).
颠覆存储每个文件夹(在.svn文件)的信息,因此,如果你只是处理一个子文件夹你不需要检出整个仓库 - 只是具有borked文件夹:
cd dir_above_borked
mv borked_dir borked_dir.bak
svn update borked_dir
Run Code Online (Sandbox Code Playgroud)
这将为您提供borked文件夹的良好工作副本,但您仍然可以在borked_dir.bak中备份您的更改.同样的原则适用于Windows/TortoiseSVN.
如果您在隔离文件夹中有更改,请查看
svn checkout -N borked_dir # Non-recursive, but deprecated
Run Code Online (Sandbox Code Playgroud)
要么
svn checkout --depth=files borked_dir
# 'depth' is new territory to me, but do 'svn help checkout'
Run Code Online (Sandbox Code Playgroud)
小智 9
$ ls -la .svn
$ rm -f .svn/lock
Run Code Online (Sandbox Code Playgroud)
然后
$ svn update
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你
我有同样的问题.我无法承诺,清理会失败.
使用命令行客户端,我能够看到一条错误消息,指出它无法将文件移动.svn/props到.svn/prop-base.
我查看了特定文件,发现它被标记为只读.删除只读属性后,我能够清理文件夹并提交我的更改.
您可能遇到两个文件名只有大写不同的问题.如果遇到此问题,则创建另一个工作副本目录无法解决问题.
当前的Windows(即蹩脚的)文件系统根本不神交之间的差异Filename和FILEname.您有两种可能的修复方法:
svn rename -m "broken filename case" http://server/repo/FILEname http://server/repo/filename我尝试svn cleanup通过控制台执行并收到如下错误:
svn: E720002: Can't open file '..\.svn\pristine\40\40d53d69871f4ff622a3fbb939b6a79932dc7cd4.svn-base':
The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
所以我手动创建了这个文件(空)并svn cleanup再次做了。这次做的还行。