小脚本——脱离SVN服务器的管理

来源:互联网 发布:淘宝家居拖鞋 编辑:程序博客网 时间:2024/06/05 08:38

不管是从事什么IT职业,SVN的使用几乎是必须的。今天呢遇到一个问题,我想让一个目录脱离svn的管理,找了一些办法,说需要删除目录下的.svn目录,就可以解除管理(可能也有别的办法,但是我没找到),想一想这太麻烦了,所以想起了python,写个小的脚本,递归删除.svn目录

# -*- coding: cp936 -*-import osimport stat# 找到所有的.svn目录的全路径def findSvnDir(root, svnList):    fileList = os.listdir(root);    for fileName in fileList:        filePath = os.path.join(root, fileName);        # 只有 filePath 是目录,并且目录名不为 .svn 才会递归        if os.path.isdir(filePath) and (fileName != ".svn"):            # 递归遍历            findSvnDir(filePath, svnList);        elif os.path.isdir(filePath) and (fileName == ".svn"):            # 找到了 .svn 的目录            svnList.append(filePath);    return svnList;def deleteSvnDir(root):    fileList = os.listdir(root);    for fileName in fileList:        filePath = os.path.join(root, fileName);        filePath = filePath.replace("\\", "/");        # 判断找到的全路径是否是目录,如果是目录,则递归下去        if os.path.isdir(filePath):            deleteSvnDir(filePath);            # 递归完成之后,到达这里 -> 说明当前的目录已经是空目录,则删除空目录            if os.path.exists(filePath):                os.chmod(filePath, stat.S_IWRITE);                os.rmdir(filePath);                print ("删除空目录: " + filePath);        else:            # 找到的是文件,删除文件            if os.path.exists(filePath):                os.chmod(filePath, stat.S_IWRITE);                os.remove(filePath);                print ("删除文件: " + filePath);def deleteSvnMgrFile(root):    svnList = [];    findSvnDir(root, svnList);    for fileName in svnList:        deleteSvnDir(fileName);        fileName = fileName.replace("\\", "/");        if os.path.exists(fileName):            os.chmod(fileName, stat.S_IWRITE);            os.rmdir(fileName);            print ("删除根目录: " + fileName);if __name__ == '__main__':    deleteSvnMgrFile("C:/Test");

这样一段简单的脚本,就可以脱离SVN的管理啦


完工 ...

之后会经常更新博客,把自己学习到的,和总结出来的,一起分享给大家(如有错误,请大伙们及时提出哦)

后期主推 —— C++设计模式

原创粉丝点击