用svn也是不短的时间了,有喜有忧,其中导出也是个麻烦事
文件夹里很多不能上传的文件夹都是设置的忽略(数据库连接信息等,由于用的是公用svn服务器),导出的话是看不到的,直接拷贝带svn文件夹的源目录,占用空间又至少是有用文件的两倍大小。。。
于是次次搜索.svn然后删除
后来看到个添加鼠标右键菜单的reg代码,好用是好用,迷糊的时候手一滑就game over了。。。要检出一份然后手动去添加忽略文件。。。杀人了啊。。。
看网上用python脚本写svn清理的比较多,于是学着写了个,貌似网上的脚本都是针对linux的,这个windows版的也发出来,请多指教
# -*- coding: cp936 -*-
# 注明字符集
# file:clearsvn.py 删除svn目录下的所有svn文件
import os,win32con,win32api
#清除文件名头尾的引号
def trimpath(pathin):
#如果头部存在引号
if pathin[0] == '\"':
pathin = pathin[1:]
#如果尾部存在引号
if pathin[(len(pathin)-1)] == '\"':
pathin = pathin[:(len(pathin)-1)]
#返回清理首尾后的字串
return pathin
def clearsvn(path):
#列出子目录
filenames = os.listdir(path)
for singlefile in filenames:
pathfile = path + '\\' + singlefile
#子目录判断是否为svn文件夹
if os.path.isdir(pathfile):
if singlefile.find('.svn') != -1:
#是的话清理文件夹后删除文件夹
deltree(pathfile)
print "清理目录:" + pathfile
#修改属性,同linux下chmod
win32api.SetFileAttributes(pathfile, win32con.FILE_ATTRIBUTE_NORMAL)
#api删除空文件夹
os.rmdir(pathfile)
else:
#不是的话递归到下一层
clearsvn(pathfile)
def deltree(path):
filenames = os.listdir(path)
#遍历所有子目录和文件夹
for singlefile in filenames:
pathfile = path + '\\' + singlefile
#如果是文件夹的话递归清理
if os.path.isdir(pathfile):
print "清理目录:" + pathfile
#修改属性,同linux下chmod
win32api.SetFileAttributes(pathfile, win32con.FILE_ATTRIBUTE_NORMAL)
#递归到下一层
deltree(pathfile)
#api删除空文件夹
os.rmdir(pathfile)
#如果是文件的话则删除
if os.path.isfile(pathfile):
print "删除文件:" + pathfile
#修改属性,同linux下chmod
win32api.SetFileAttributes(pathfile, win32con.FILE_ATTRIBUTE_NORMAL)
#api删除文件
os.remove(pathfile)
if __name__=="__main__":
#提示用户输入目录路径
pathin = raw_input("拖放要删除文件所在目录到此:")
#清理字串首尾的引号
path = trimpath(pathin)
#确认文件夹
choose = raw_input("需要清理的文件夹为 [ " + path + " ] y/n?:")
if choose == 'y' or choose == 'Y':
#检查用户输入的目录是否存在,如果不存在则退出程序
if os.path.exists(path)==False:
print "输入的目录不存在!"
os._exit(1)
#遍历子文件夹进行删除
clearsvn(path)
print "清理完成!"
#运行结束暂停,显示友好信息
os.system('pause')
分享到:
相关推荐
综上所述,这段Python脚本不仅展示了如何有效地处理文件系统操作,还体现了跨平台编程时的注意事项,特别是在Windows环境下对文件权限的处理。通过学习和理解此类脚本,可以提升开发者在实际项目中处理类似问题的...
5. **自动清除工具**:可以编写脚本,比如bash、Python或批处理文件,遍历指定目录下的所有子目录,查找并删除.svn文件夹。 6. **注册表文件**:`.reg`文件用于导入或导出Windows注册表项,谨慎使用,因为它可以...
当我们说到"删除目录下所有svn相关的文件夹",我们通常是指清理不再需要的`.svn`隐藏目录。这些目录在每个被SVN控制的子目录中存在,用于存储版本信息。如果你不再需要这些版本控制信息,或者想要彻底移除与SVN的...
尽管Git的大部分信息存储在文件系统中,但SVN的一些设置可能与Windows注册表有关,所以这两个脚本可能是用来清理与Git和SVN相关的注册表键值的。 要使用这些`.reg`文件,你需要右键点击它们并选择“合并”,然后...
- 自定义批处理脚本或Python、Perl等编程语言的脚本,遍历指定目录及其子目录,删除.svn文件夹。 - 使用专门的清理工具,如`svn-clean`或第三方软件,它们设计了安全的方式来处理这种情况。 7. **注意事项**: -...
在某些情况下,可能需要清理文件夹中的.SVN子目录,这通常是由于不再需要这些版本控制信息,或者为了减小文件夹大小。以下是对SVN和如何处理.SVN子目录的详细解释: 1. SVN基础知识: - 版本控制:SVN是开源的版本...
1. **手动删除**:打开文件资源管理器,找到包含.svn目录的工作副本,进入每个子目录,手动选中.svn文件夹并进行删除。但是这种方法耗时且容易出错,不推荐对大量文件使用。 2. **命令行删除**:如果你熟悉Windows...
在使用SVN管理项目时,我们会在项目目录下生成许多以`.svn`为扩展名的隐藏文件和文件夹,它们用于存储版本信息、元数据等。然而,在某些情况下,我们可能需要批量删除这些`.svn`文件,例如在不使用SVN或者准备将项目...
例如,可以使用Python、Bash或其他编程语言编写一个遍历目录并删除`.svn`的脚本。 4. **利用工具**:有一些专门的清理工具,如`svn-clean`(Unix-like系统)或`svnadmin`(Windows),可以帮助用户安全地删除`.svn`...
描述中提到的“简单的删除.svn文件的小程序”是一种自动化工具,可能是用某种编程语言(如Python、批处理脚本等)编写,它的主要功能是遍历项目文件夹,查找并移除所有.svn子目录,从而简化项目文件结构,方便进行...
在Windows XP下,Subversion服务器有时候看起来发送损坏的数据。 跟踪Subversion客户端和Apache服务器通话最好的方法是什么? 我刚刚编译了二进制分发版本,当我尝试检出Subversion,我得到一个“Unrecognized URL...
在Windows XP下,Subversion服务器有时候看起来发送损坏的数据。 跟踪Subversion客户端和Apache服务器通话最好的方法是什么? 我刚刚编译了二进制分发版本,当我尝试检出Subversion,我得到一个“Unrecognized URL...
本文将深入探讨“python 文件实用包”所涵盖的四个主要功能:批量重命名、清除SVN相关文件、文件内容查找与替换以及按规则批量删除文件或目录。 1. 批量重命名: 在日常工作中,我们经常需要对大量文件进行重命名,...
假设我们要创建一个简单的自动化工具,该工具需要将debug目录下的配置文件复制到指定目录,并将Release目录下的生成文件复制到同一个目录,同时过滤掉不需要的文件夹(例如`.svn`),最后向指定目录添加几个特定的...
- `python`:版本2.4或更高,用于执行构建脚本。 - `libnss3-dev`:网络安全服务库,用于身份验证和安全协议。 - `libasound2-dev`:ALSA音频库开发包,处理音频输入和输出。 - `libpulse-dev`:PulseAudio库,...