问题描述

之前为了图方便,在eclipse中直接把三个jsp文件复制到了eclipse中我新建的一个文件夹中,把svn版本号信息也带过来了,然后我又删除了这三个jsp文件,接着先把这三个jsp复制到桌面,然后在从桌面复制到eclipse中我新建的文件夹中,这时是没有svn版本号信息了,但是在"与资源库同步"后提交的时候出现了问题:

svn报如下错误:

我尝试在eclipse中删除这个文件夹也删不了,报错:

接着尝试直接在工作空间的目录里删除这个文件夹,但是还是有问题:

如图所示,这个红圈中的文件就是我删除的文件,与资源库同步后的结果,这时我去提交或更新还是会报错:Attempted to lock an already-locked dir

解决问题

继续实践,后来在网上看到了这个:

然后我就先把文件恢复成了这个蓝色加号的状态,然后先进行了提交操作,之后虽然蓝色加号消失了,但是在与资源库同步之后还是有问题:

出现了这种情况,又提示更新又提示提交的,继续解决问题,最终方法,其实只需要把工作空间里对应目录的.svn文件夹里的lock文件删除就行:

我连同产生的错误日志文件一同干掉了,eclipse中的svn插件终于正常了。

问题总结

org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir
svn: Working copy 'D:\wangbo\album2\WebRoot\pages\shareProduct' locked

"svn客户端异常:试图锁定一个已经锁定的目录"

根据提示能够想到,要提交代码的时候,SVN 所做的工作中有一个操作步骤是"锁定",所以才会有"Attempted to lock "这一步,至于"an already-locked dir",就是说当前资源已经是锁定状态了,所以无法再次锁定。按说按照提示"尝试锁定一个已经被锁定的目录",就像"你去把门锁上,其实门就是锁上的",这一命令就没法执行了。应该只要 "release lock"就可以再次进行锁定了。然而并非如此,原因就是:此 lock 非彼 lock !你在右键 SVN 菜单中能找到所有 " [ * ] lock" 命令都是对 SVN 仓库所做的操作,不信你试试,都会让你填操作说明的,说明这是对仓库资源有改变(这里的lock是指在代码库中标记为锁定状态,不允许更改);我们这里的锁定只是在一次代码提交阶段暂时性"锁定",等提交操作完成了就取消锁了,是为了保证在提交过程中不被更改(提交代码需要网络通信,如果网络质量不好就比较耗时,你可能在此过程中对正在提交的代码更改),所以只要 cleanup 上次的锁定就可以了。

解决方法

一、右键选择 Team > Refresh/Cleanup ,再进行提交操作(前提是具备有效的SVN仓库连接)就可以了。

二、还有一种方法就是我自己用的了,直接删除lock文件就可以了(参考我上面的描述)。

项目文件与 SVN 资源库同步提示错误 Attempted to lock an already-locked dir的更多相关文章

  1. eclipse中svn插件的工程不能与svn资源库同步的解决方法

    eclipse中svn插件的工程不能与svn资源库同步的解决办法 最近几天自己的工程与资源库同步总是出现问题,重启机器后发现资源库丢失了,无法进行同步. 解决办法如下: 1.右键工程---->选 ...

  2. 转载:Linux下执行SVN命令时提示错误:Valid UTF-8 data

    在Linux下执行svn add *时出现如下错误: svn:  Valid UTF-8  data(hex: 4b)followed by invalid UTF-8 sequence(hex:  ...

  3. SVN中与资源库同步时报告了错误。1 中的 0 个资源已经同步

    SVN中与资源库同步时报告了错误.1 中的 0 个资源已经同步 原因: 文件被lock, 此时再次提交则出错,解决办法就是clean释放锁即可再次提交: 解决方案: 右键项目–>team–> ...

  4. 【svn】 SVN错误:Attempted to lock an already-locked dir

    出现这个问题后使用“清理”功能,如果还不行,就直接到上一级目录,再执行“清理”,然后再“更新”. 有时候如果看到某个包里面的文件夹没有SVN的标志,直接用“Ctrl+Delete”手工删除,然后“清理 ...

  5. SVN错误:Attempted to lock an already-locked dir的解决

    问题: SVN locked,文件被锁无法更新,SVN上更新代码失败,某些文件提示错误:Attempted to lock an already-locked dir 解决方法: 右键具体文件→Tea ...

  6. svn使用技巧一:更新、提交、资源库同步之间区别

    提交:是用本地文件覆盖服务器的文件,只有提交会导致服务器上发生变化 更新:只是把服务器上最新版本下载到客户端,规则如下: 1.如果你本地的某个文件没有修改过,而服务器上的这个文件别人已经提交过新版本, ...

  7. SVN错误:Attempted to lock an already-locked dir svn: Working copy locked

    VN错误:Attempted to lock an already-locked dir update D:/workspace20/SC_200/metadata -r 3398 --force   ...

  8. SVN错误:Attempted to lock an already-locked dir

    在eclipse里提交和更新文件是报错: Attempted to lock an already-locked dir svn: Working copy 'F:\workspace\WebFram ...

  9. 如何解决svn清理失败 不能更新 cleanup失败 cleanup乱码 更新乱码 svn更新提示清理 清理乱码不能清理 svn故障修复SVN cleanup 陷入死循环 svn cleanup时遇到错误怎么办

    平时使用svn的过程中,有的时候由于自己操作故障或者系统原因,导致svn不能更新,提示cleanup也不能成功,陷入了死循环 原因是;svn的数据库队列原因 1,下载sqlite3.exe,googl ...

随机推荐

  1. etcd-v3

    参考:https://www.kancloud.cn/wjx0912/opensource/434745

  2. 新手必备的Linux知识

    测试人员为什么学习linux? 对于软件测试人员来说,我们测试的任何产品都是基于操作系统.比如我们每天都在使用的QQ软件,它有windows.ios.Android.Mac OS等版本,需要把QQ安装 ...

  3. 内核中的 ACCESS_ONCE()

    参考资料: https://blog.csdn.net/ganggexiongqi/article/details/24603363 这个真特么玄学了...

  4. java中产生HttpServletRequest等作用域

    protected ServletContext getServletContext() { return ServletActionContext.getServletContext();} pro ...

  5. 【转】【机器学习】R 正则化函数 scale

    源:http://blog.163.com/shen_960124/blog/static/60730984201582594011277/ 1. 数据的中心化 所谓数据的中心化是指数据集中的各项数据 ...

  6. 批量运维SQl生成,可以用EXCEl,也可以SQL查询生成

    select 'insert into Base_VehiclesInformation (ID,CarModelID,FistRegTime,ScrappageDate, Creator,Creat ...

  7. OO第9-11作业总结

    一. 规格化设计   规格化抽象,即将执行的细节抽象为用户所需求的行为(模块做什么). 主要作用在于提高工程设计中的可维护性,可读性,明确功能,使整个编程任务变得清晰有序以减少程序BUG. 说其发展历 ...

  8. 02.02.01 第1章 简介及基础操作(Power BI商业智能分析)

    02.02.01.01 powerbi简介 00:10:59 02.02.01.02 query数据导入 00:03:26 具体操作实例如下: 02.02.01.03导入access数据 00:05: ...

  9. HTML的Tomcat

    修改D:\software\apache-tomcat-8.0.44\webapps\ROOT\WEB-INF\web.xml: <?xml version="1.0" en ...

  10. WindowsPE权威指南 第二章 小工具 PEComp代码的C语言实现

    主程序代码 PEComp.c #include <windows.h> #include <Richedit.h> #include <Commctrl.h> #i ...