SVN冲突
svn在提交的时候断网极容易出现org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir ------ "SVN 客户端异常:试图锁定一个已经锁定的目录"。
这是什么错误呢?根据提示能够想到,我要提交代码的时候,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 文件)
- BZOJ 3211: 花神游历各国【线段树区间开方问题】
- WP、Win10开发或者WPF开发时绘制自定义窗体~例如:一个手机
- 【Java学习笔记之八】JavaBean中布尔类型使用注意事项
- BZOJ 1597: [Usaco2008 Mar]土地购买【斜率优化+凸包维护】
- BZOJ 1046: [HAOI2007]上升序列【贪心+二分状态+dp+递归】
- 【Java学习笔记之九】java二维数组及其多维数组的内存应用拓展延伸
- BZOJ 1293: [SCOI2009]生日礼物【单调队列】
- Javascript缓存投毒学习与实战
- 【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题
- Codeforces 839B Game of the Rows【贪心】
- Codeforces 839A Arya and Bran【暴力】
- 【Java学习笔记之十一】Java中常用的8大排序算法详解总结
- 浅谈zip格式处理逻辑漏洞
- C/C++中peek函数的原理及应用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS7安装mysql5.7解压缩版简明教程
- Gunicorn Django部署配置方法
- Linux中使用NTP保持精确时间的方法详解
- LNMP环境下搭建yum的方法分析
- django 利用pillow 进行简单的设置验证码功能(python)
- Centos环境下安装Zend optimizer 3.3.9的方法
- Linux curl表单登录或提交与cookie使用详解
- Linux磁盘设备与LVM管理命令示例详解
- Ubuntu基础教程之apt-get命令
- Ubuntu18.04.2下安装 RTX2080 Nvidia显卡驱动的方法
- linux进程监控与自动重启的简单实现方法
- Linux 解决Deepin无法在root用户启动Google Chrome浏览器的问题
- 在Linux上安装和使用Docker的方法
- centOS7 NET模式设置静态Ip的方法步骤
- CentOS搭建PHP服务器环境简明教程