SVN ---文件加锁,执行clean up命令

一、SVN 中 clean up 的功能

当Subversion改变你的工作拷贝(或是.svn中的任何信息),它会尽可能的小心,在修改任何事情之前,它把意图写到日志文件中去,然后执行 log文件中的命令,并且执行过程中在工作拷贝的相关部分保存一个锁,防止Subversion客户端在变更过程中访问工作拷贝。如果 Subversion的操作中断了(举个例子:进程被杀死了,机器死掉了),日志文件会保存在硬盘上,通过重新执行日志文件,Subversion可以完成上一次开始的操作,你的工作拷贝可以回到一致的状态。

这就是svn clean up所作的:它查找工作拷贝中的所有遗留的日志文件,删除进程中工作拷贝的锁。如果Subversion告诉你工作拷贝中的一部分已经“锁定”了,你就需要运行这个命令了。

二、本地文件锁定,使用“清除”命令

SVN本地更新时,由于一些操作中断,如磁盘空间不够,用户取消等,可能会造成本地文件被锁定的情况。这时候无论你在执行SVN的更新、上传、添加等子命令都会提示“**locked”的错误,如图:

一般出现这种情况的解决方法:

1、可以使用SVN clean up来清除锁定

2、如果不是本目录锁定,系统提示上一层目录锁定,需要到上一层或者根目录中清除。

3.如果在根目录下都无法 clean的话,一般采取的方法是另外找一个目录重新CHECKOUT。但有时有时SVN目录下可能有一些自己本地修改的文件,还未提交到SVN服务器, 这时重新CHECKOUT需要注意本地文件的备份,并且不要强制覆盖服务器上其它人修改的内容。

4.其实SVN加锁会在.SVN(隐藏文件)中生成一个名字叫lock的文件(无后缀),查找所有的,手工删除。然后再尝试更新,系统可能会提示某个.base文件无法访问。找到它,把相关的文件或其所在的目录删除,重新UPDATE。

5.在相应的目录中,比如我在 更新metasploit的“/opt/metasploit3/msf3/lib/active_support/core_ext”这个目录时就遇到 了类似的情况,把.SVN子目录里(注意,“.”目录是个隐藏目录,需要选择“文件夹选项”→“查看”→“显示隐藏文件”菜单项)面log文件删除,就可 以了。然后继续做svn cleanup命令。

第4种和第5种方式,未找到相关locked文件 和 log文件,不知道是不是SVN版本的问题。本地文件加锁,“清除命令clean up”很好使。

时间: 2024-10-12 21:33:26

SVN ---文件加锁,执行clean up命令的相关文章

(转)svn执行clean up命令时报错“Previous operation has not finished; run 'cleanup' if it was interrupted”

今天碰到了个郁闷的问题,svn执行clean up命令时报错“Previous operation has not finished; run 'cleanup' if it was interrupted”.无论你到那个父层次的目录执行“clean up “,都是报一样的错.执行cleanup时候,提示要cleanup.看来是进入死循环了. 可能是频繁做了一些改名,文件打开的时候更新或者提交操作,导致svn罢工了.这个也该算是svn的bug吧.类似的情况,其实之前也碰到过.之前都是图省事,把整

svn执行clean up命令时报错或被锁定的解决方法

用SVN经常出现被锁定而无法提交的问题,选择解锁又提示没有文件被锁定,很是头疼.这里整理了一下SVN 被锁定的几种解决方法: 1.出现这个问题后使用“清理”即"Clean up"功能,如果还不行,就直接到上一级目录,再执行“清理”,然后再“更新”. 2.有时候如果看到某个包里面的文件夹没有SVN的标志,直接用“Ctrl+Delete”手工删除,然后“清理”,最后“更新”或“提交”. 3.有时候有的文件死活无法提交和更新,有lock字样的提示,:首先点击该文件,然后getLock,再选中

查找文件并执行的shell命令

来由 经常我们需要找到某类文件, 并对进行处理. 例如找到.svn文件夹, 然后删除掉. 如果不使用shell,你可以选择手动删除, 前提是没有几个此类文件, 但是svn信息文件很多, 不能采用手动删除, 或者逐个命令删除. 由此引入shell来解决此问题. 方法1 find –exec 选项 NAME       find - search for files in a directory hierarchy SYNOPSIS       find [-H] [-L] [-P] [-D deb

SVN文件加锁

原文:SVN与TortoiseSVN实战:文件加锁详解 加锁与解锁的操作对于项目中的二进制文件,如图片.声音.动态库等不可合并文件是非常有用的,可以让这些文件防止产生恼人的冲突,但TortoiseSVN中的Get lock的其实并不能满足需要,并不能在编辑前获得对文件的独占访问,这也是本文要结合属性来详解文件加锁的原因. 本篇内容概要: 1.版本控制系统的加锁策略:乐观加锁.严格加锁: 2.使用TortoiseSVN获取锁和释放锁: 3.使用属性,将文件设置为只读: 4.关于锁的建议: 1.版本

Java利用 ganymed-ssh2-build.jar来上传文件到linux以及下载linux文件以及执行linux shell命令

package api; import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;import java.io.InputStream;import org.apache.log4j.*;import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.SCPClient;import ch.ethz.ssh2.Session;impor

svn clean up命令的使用

以下内容来自网友: https://blog.csdn.net/reggergdsg/article/details/77678771 SVN的清理命令,我们经常会使用.这个命令的原理,我们还是有必要深究一下的.    当SVN改变你的工作拷贝(或是.svn中的任何信息),它会尽可能的小心.在进行任何修改操作时,SVN都会把日志记录到日志文件中,然后执行log文件中的命令,并且执行过程中在工作拷贝的相关部分保存一个锁,防止SVN客户端在变更过程中访问工作拷贝.如果SVN的操作中断了(举个例子:进

dos命令删除代码目录中的.svn文件

当需要删除代码目录中的.svn文件时,可以用一句dos命令轻松搞定 for /r "删除.svn的目录" %i in (.svn) do rd /s /q %i

SVN与TortoiseSVN实战:文件加锁详解

硬广:<SVN与TortoiseSVN实战>系列已经写了八篇,本篇是完结篇,整个系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,以技巧性为主. 本篇详解使用TortoiseSVN对文件进行加锁和解锁的技巧,其中涉及到了之前介绍的SVN属性知识,关于属性可以翻看<SVN与TortoiseSVN实战:属性的奇技淫巧(一)>.<SVN与TortoiseSVN实战:属性的奇技淫巧(二)>. 加锁与解锁的操作对于项目中的二进制文件,如图片.声音.动态库等不可合

svn常见问题,报错,命令及总结

我自己犯过的一个错误是:/svn/MyERP_core_Main/!svn/act/b8bd621b-c193-4969-b66c-d35f11009815 后来证实是地址的大小写问题,我修改了大小写,然后删掉了本地的文件,check out服务器的文件,然后提交和更新就好了,麻烦之处在于,你需要重新将文件修改,然后提交上去. svn更换提交地址:svnswitch --relocatehttp://1.1.5.54:8080/svn/MyERP_Core_Main/MyERP_Core/tru