svn clean up命令的使用

dengweijunkedafu 2019-12-10

以下内容来自网友:

https://blog.csdn.net/reggergdsg/article/details/77678771

SVN的清理命令,我们经常会使用。这个命令的原理,我们还是有必要深究一下的。
    当SVN改变你的工作拷贝(或是.svn中的任何信息),它会尽可能的小心。在进行任何修改操作时,SVN都会把日志记录到日志文件中,然后执行log文件中的命令,
并且执行过程中在工作拷贝的相关部分保存一个锁,防止SVN客户端在变更过程中访问工作拷贝。如果SVN的操作中断了(举个例子:进程被杀死了,机器死掉了),
日志文件会保存在硬盘上。通过执行日志文件,SVN可以完成上一次没有完成的操作,你的工作拷贝可以回到一致的状态。
    这就是svn clean up命令的功能:它查找工作拷贝中的所有遗留的日志文件,删除进程中工作拷贝的锁。如果SVN告诉你工作拷贝中的一部分已经“锁定”了,
你就需要运行这个命令了。


二、本地文件锁定,使用“清除”命令
    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命令。

相关推荐

leehbhs / 0评论 2020-03-04