svn can't stat文件状态为obstructed怎么救?
最近尝试集入ssl库到服务器是时,提交过程出现文件参数报错,导致提交失败。此时,尝试clean up发现会提示某个文件“can't stat”。
一度怀疑应该是编译出来的文件被杀毒软件干掉了。产生了一个NUL。

检查到改文件的状态obstructed。想提交提交不了,想删除要先完成clean up。

解决方案:
尝试清理wc.db中的work_queue表数据来解决。
WORK_QUEUE表是 SVN 工作副本数据库的待办操作队列,用于串行化记录并追踪未完成的本地版本控制任务(如更新、提交、清理等),确保操作原子性与状态一致性,防止并发冲突。
手动清空该表(DELETE FROM work_queue;)以解除虚假锁定,恢复工作副本可用状态 。如果文件帧的没有提交成功,解除锁定后可以重新再提交即可。
我找到了一个免费的数据库操作工具——sqlitespy。
它可以从如下连接下载到,解压即用。
https://www.yunqa.de/delphi/apps/sqlitespy/index

解压后,到匹配系统架构下的目录下(x64),双击SQLiteSpy.exe即可使用。

找到WORK_QUEUE表,在命令栏里输入DELETE FROM work_queue;(注意还有一个分号),点击上方的执行Execute->Execute SQL就会运行清理WORK_QUEUE表里数据行为。



执行完后,在你工作区重新svn clean up即可。

另外,如果发现该文件还是obstructed状态,那将它从版本控制中清理掉,到wc.db里,将该文件删除掉,例如下方的NUL文件。
DELETE FROM NODES WHERE local_relpath = 'server/libcyynet/3rd/openssl/src/openssl-3.3.2/NUL';

重新clean up即可。
希望这个记录能解决你当下的困难。
与君共勉~

浙公网安备 33010602011771号