有个项目使用svn 高版本客户端作业,转换到低版本的环境下,出现锁定,命令执行失败.
使用cleanup 没有效果,
网上建议的svn无法Cleanup解决方法:
Step1:到 sqlite官网 (http://www.sqlite.org/download.html) 下载 sqlite3.exe;找到 Precompiled Binaries for Windows ,点击 sqlite-tools-win32-x86-xxxxxxx.zip 下载。
Step2:将下载到的 sqlite3.exe 文件复制到 本地磁盘的某个临时目录下(当然也可以不用)。
Step3:然后 设置 svn源代码 文件夹 及文件 显示 所有文件(包括隐藏文件),会发现 .svn/wc.db 文件, 将 其复* Step2 的临时目录下(sqlite3.exe 所在目录下)。
Step4:打开 wc.db(开始 -> 运行 -> 打开 cmd命令; 或者直接将wc.db拖入sqlite3.exe); 执行 delete from work_queue ;
Step5:将 wc.db 覆盖到 svn源代码目录的 .svn目录下。
Step6:对 svn源代码目录 右键, clean up, 稍等1至5分钟左右,然后会提示 清理成功。
我的目录下没有wc.db .这个就没有效果.执行也是找不到表.
最终决定删除svn 改用git
static ArrayList Delsvn(DirectoryInfo dir)//搜索文件夹中的文件 { ArrayList FileList = new ArrayList(); DirectoryInfo[] allDir = dir.GetDirectories(); foreach (DirectoryInfo d in allDir) { if (d.Name == ".svn") { Console.WriteLine("" + d.FullName + " "); //File.Delete(d.FullName); DeleteFile(d.FullName); } else { Delsvn(d); } } return FileList; } //创建方法,删除文件夹中的所有文件包括文件夹本身 public static void DeleteFile(string file) { //去除文件夹和子文件的只读属性 //去除文件夹的只读属性 System.IO.DirectoryInfo fileInfo = new DirectoryInfo(file); fileInfo.Attributes = FileAttributes.Normal & FileAttributes.Directory; //去除文件的只读属性 System.IO.File.SetAttributes(file, System.IO.FileAttributes.Normal); //判断文件夹是否还存在 if (Directory.Exists(file)) { foreach (string f in Directory.GetFileSystemEntries(file)) { if (File.Exists(f)) { System.IO.File.SetAttributes(f, System.IO.FileAttributes.Normal); //如果有子文件删除文件 File.Delete(f); } else { //循环递归删除子文件夹 DeleteFile(f); } } //删除空文件夹 Directory.Delete(file); } }