SVN问题之——org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir(网摘文)
一、问题描述
今天在 Eclipse 中用 SVN 插件提交代码时遇到 org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir 的问题,"SVN 客户端异常:试图锁定一个已经锁定的目录",嘛意思啊!报错如下图:
详情为:
org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir
svn: Commit failed (details follow):
svn: Working copy 'E:\x\xx\src\com\xxx\ui' locked.
svn: 'E:\x\xx\src\com\xxx\ui' is already locked.
这是什么错误呢?根据提示能够想到,我要提交代码的时候,SVN 所做的工作中有一个操作步骤是"锁定",所以才会有"Attempted to lock "这一步,至于"an already-locked dir",我忽然想到,昨晚下班我尝试过一次提交代码,但是由于忘记切换网络而作罢(我们 SVN 部署在内网上,而平时可以联外网)。而 SVN 正好在这里有个问题——如果你的环境没有联上有效的 SVN 仓库,那么在提交的时候就会卡在这里,会有一个 Progress 一直在跑但又跑不完,我就是在这种情况下使用资源管理器强制关闭进程,所以今天再提交的时候会"the dir you Attempted to lock has been already-locked"。所以我也可以肯定,SVN 提交代码第一步就是 lock 你要提交代码所在的 dir,(我的经历证明,没有有效的资源库联接,这之后都不能工作)然后才检查资源库代码版本...提交...。
二、问题处理
找到原因就好办了。
一个小插曲(但是对理解很重要):按说按照提示"尝试锁定一个已经被锁定的目录",就像"你去把门锁上,其实门就是锁上的",这一命令就没法执行了。应该只要 "release lock"就可以再次进行锁定了。然而并非如此,原因就是:此 lock 非彼 lock !你在右键 SVN 菜单中能找到所有 " [ * ] lock" 命令都是对 SVN 仓库所做的操作,不信你试试,都会让你填操作说明的,说明这是对仓库源有改变(这里的lock是指在代码库中标记为锁定状态,不允许更改);我们这里的锁定只是在一次代码提交阶段暂时性"举起手来,不许动",等提交操作完成了就取消锁了,是为了保证在提交过程中不被更改(提交代码需要网络通信,如果网络质量不好就比较耗时,你可能在此过程中对正在提交的代码更改),所以我只要 cleanup 上次的锁定就可以了。
这里提供3中方法:
(一)Eclipse SVN 插件处理 使用 SVN 插件时,选中能包含所有待提交代码的最小的包(当然你可以直接选择工程也无可厚非,我只是为了最小影响范围原则而已),右键选择 Team > Refresh/Cleanup ,再进行提交操作(前提是具备有效的SVN仓库联接)就可以了。
(二)SVN 客户端处理
(1)如果你安装了SVN客户端(就那个小乌龟),*并不是说要通过客户端操作,只是安装了客户端,右键才有 SVN 子菜单* 打开 workspace 中对应的文件夹,右键 TortoiseSVN > clean up... ,妥了。
(2)如果你身具极客风度,也可以使用 svn 命令:svn cleanup ...(操作目标目录路径)
(三)删除lock文件
还有网上看到一种方法说是,直接进入到上面的文件夹下的.svn目录,删除lock文件就可以了。(这个方法我没试过,其实是因为笨得根本就没找见 lock 文件)哪位大大用过这种方式,麻烦不吝赐教,程序猿在此谢过! --------------------- 本文来自 衷水木 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/a_running_wolf/article/details/50833462?utm_source=copy
SVN问题之——org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir(网摘文)的更多相关文章
- org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir
1.错误描述 org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir svn: Co ...
- svn被锁 The project was not built due to "org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir
解决办法 : 右键该项目 ,---->Team---->选"Team"-->"Refresh/Cleanup",并确认"Ref ...
- org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir svn: Working c
Eclipse插入svn提交出现:org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked d ...
- org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir异常解决方法
myeclipse用svn提交的时候报错: Attempted to lock an already-locked dir svn: Working copy 'D:/Program Files/My ...
- 解决org.apache.subversion.javahl.ClientException: svn: E200007: Runner for 'org.tmatesoft.svn.core.wc2.SvnMerge' command have not been found
最近使用svn的merge功能合并代码,一直出现一个错误: org.apache.subversion.javahl.ClientException: svn: E200007: Runner for ...
- org.apache.subversion.javahl.ClientException: svn: E155021: This client is too old to work with the
org.apache.subversion.javahl.ClientException: svn: E155021: This client is too old to work with the ...
- Subversion代码提交中的org.apache.subversion.javahl.ClientException: svn: E200007: Commit failed异常解决
: 在切换subversion服务器地址之后,发生的无法正确提交代码的问题org.apache.subversion.javahl.ClientException: svn: E200007: Com ...
- org.apache.subversion.javahl.ClientException: Previous operation has not finished
1.问题 eclipse使用SVN出现异常: org.apache.subversion.javahl.ClientException: Previous operation has not fini ...
- org.apache.subversion.javahl.ClientException: Item is not readable 解决办法
在使用eclise安装的插件subclipse查看svn的提交历史记录的时候,提示org.apache.subversion.javahl.ClientException: Item is not r ...
随机推荐
- WebAPI中发送字节数组
今天工作中遇到了一个情景: 前端向后台发送一个请求,希望后台返回一组数据,由于后台返回的数据量很大,希望尽可能压缩响应的大小 我的想法:后台将数据(Short的数组)直接转换成Byte[] 然后将b ...
- Winform文件上传
近期在做了一个winform的项目的附件上传的需求 最初项目选型的时候有三种 1.使用webservice.webapi上传文件 2,直接保存在数据库中 3.使用共享目录+dos命令 第一种有文件大小 ...
- Button去除边框方法
<Button Content="Button" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey} ...
- 基于tkinter的九型人格测试系统介绍
基于tkinter的九型人格测试系统介绍 一.程序代码地址,GitHub 二.程序介绍 1.login.py 登录界面: 注册界面: 2.mainWindow.py 登录成功之后的界面: 3.doTe ...
- linux 服务器脚本采集数据中文无法执行错误
问题描述:在 RHEL6 版本的服务器上使用脚本操作数据库,其中一个SQL的字段值为中文,每次使用 crontab定时 执行该脚本无法获取数据,实现预期效果,而手动执行正常. oracle clien ...
- shopify网站转化率优化之结账页checkout优化
昨天分享了“利用GOOGLE地图API实现shopify结账页checkout地址自动填写地址字段”是个非常屌的功能,但shopify默认的结账页checkout是这样的如图 [caption id= ...
- Jenkins配置项目
前提:服务器上部署了jenkins+Tomcat,并且安装了所需插件 1.新建项目 -- 项目配置 2.配置git地址 出现上述错误是因为该git地址,在jenkins服务器上无权限访问.在git上开 ...
- 剑指offer十二之数值的整数次方
一.题目 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 二.思路 1.传统方法计算,时间复杂度O(n) 2.递归方式计算,时间复杂度O ...
- JavaScript -- Window-窗口坐标
-----029-Window-窗口坐标.html----- <!DOCTYPE html> <html> <head> <meta http-equiv=& ...
- vue数组检测更新问题
由于 JavaScript 的限制, Vue 不能检测以下变动的数组: 当你利用索引直接设置一个项时,例如: vm.items[indexOfItem] = newValue 当你修改数组的长度时,例 ...