SVN锁相关——Attempted to lock an already-locked dir

场景:

由于项目需要,将原工程拷贝副本,新建分支,利用eclipse+svn检出原工程后,断开链接,重新建立分支资源库后,建立连接,在将工程上传至分支资源库时由于网络原因(起初并不知道什么原因,目前也只是猜测是网络原因,过程并未报错且无法追踪),部分模块始终处于“check in......”状态,后来强制终止传输,并关闭IDE,当再次打开IDE,上传之前强制终止的模块时,报错如下:

Attempted to lock an already-locked dir    
svn: Working copy 'D:\workspace_deepfunc\ME_POS' locked 

解决方法:

选中锁住的模块/项目,右键->Team->清理;

网络参考:http://www.cnblogs.com/maxinliang/p/3455285.html

1.出现这个问题后使用“清理”即"Clean up"功能,如果还不行,就直接到上一级目录,再执行“清理”,然后再“更新”。
2.有时候如果看到某个包里面的文件夹没有SVN的标志,直接用“Ctrl+Delete”手工删除,然后“清理”,最后“更新”或“提交”。
3.有时候有的文件死活无法提交和更新,有lock字样的提示,:首先点击该文件,然后getLock,再选中stealLock,然后release lock即可
4.教大家最狠的一招,在项目中如果是出现某个文件死锁的情况无法解决的情况下,叫开发中所有的人把文件上传了解锁了,清空版本库地址:安装目录:SvnTracsvnprojectsdblocks这个文件夹路径里面的全部内容。一切ok!

引申(参考:SVN锁):

1、SVN为什么要配置锁的概念?

使用之前在“复制-修改-合并 方案”一节中描述的复制-修改-合并 的方法,Subversion通常不需要锁就可以很好的工作。但是,在某些情况下你可能需要制定某种锁定策略。

  • 例如,你使用图形文件等不能合并的文件。如果两个人修改同一个这样的文件,合并是不可能的,所以你丢失其中一个的修改。

  • 您的公司过去一直使用一个锁定版本控制系统,并且已有一个 锁定是最好的 管理决策。

2、锁定在Subversion是如何工作的?

默认情况下,所有的东西都没有锁定,只要有提交权限的人都可以在任何时候提交任何的文件。其他人会定时更新他们的工作副本,在库中的改变的东西都会与本地合并。

如果你对一个文件 取得锁定,那么只有你可以提交这个文件。其他用户的提交都会被拒绝,直到你释放了这个锁。一个被锁定的文件不能在库中进行任何形式的合并。所以它不能除锁的拥用者之外的人删除或更名。

3、如何获取锁?

选择工作副本中你想要获取锁定的文件,然后选择命令TortoiseSVN → 取得锁定....

图 4.57. 锁定对话框

锁定对话框


出现一个对话框,允许你输入注释,这样别人可以知道你为什么锁定这个文件。注释是可选的,并且只用于基于Svnserve的库。当(且当)你需要窃取别人的锁的时候,勾选偷取此锁定复选框,然后点击确定

您可以设置项目属性 tsvn:logtemplatelock 给要填写如锁定信息的用户提供一个信息模板。

4、如何释放锁?

为了确保你不会忘记释放锁,你不需要做别的事,在提交对话框中,总是会显示锁定的文件,并总是默认被选中。如果你继续提交,选中的文件中的锁就被移除了,就算你从没有修改过。如果你不希望释放某文件的锁,你可以取消选中它(如果你没有修改过)。如果你希望保持一个修改过的文件的锁,你需要在提交之前选中保持锁定复选框。

要手动释放锁定,选中工作副本中要释放的文件,选择命令TortoiseSVN → 释放锁定。不需要输入什么 TortoiseSVN会联系版本库并释放锁。你可以对一个文件夹来使用这个命令释放其中的所有锁定项。

5、如何查看锁状态

要查看你和他人所拥有的锁,你可以使用TortoiseSVN → 检查修改...命令。本地的锁定令牌会立即显示出来,要查看别人拥用的锁定(或是检查你的锁是否被破坏或窃取)你需要点击检查版本库

从此处的右键菜单中,你可以获取锁或是释放锁,也可以破坏或是窃取别人的锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值