精华内容
下载资源
问答
  • Python 获取SVN 文件

    千次阅读 2012-12-13 07:43:44
    Python 获取SVN 文件 2012-08-16 09:59:06 我来说两句  收藏 我要投稿 背景:  最近要从SVN 服务器的一个文件夹里面check out 八十几个文件,但是这个文件夹比较大,里面有几千个文件。   由于服务器在...
    Python 获取SVN 文件
    2012-08-16 09:59:06      我来说两句      
    收藏   我要投稿

    背景:
     最近要从SVN 服务器的一个文件夹里面check out 八十几个文件,但是这个文件夹比较大,里面有几千个文件。 
     由于服务器在印度,check out 非常缓慢而且经常莫名其妙地断开连接。  
    (吐槽下:谁在维护这个服务器啊,服务器太慢啦,为什么把这么多文件放在同一个文件夹啊)

     于是我放弃将整个文件夹check out出来的想法,准备单独check out 这八十几个文件。  

     平时取单个文件的时候,我是通过浏览器访问SVN服务器,使用浏览器的"文件另存为"功能来下载文件,  
    但是这八十几个文件一个"另存为",又太... 好吧,我承认我有点懒...

    于是我写了这个Python脚本...

    核心思想:
    使用urllib2模块来模拟浏览器访问SVN服务器.
    SVN服务器是要校验权限的,因此使用HTTPBasicAuthHandler来添加用户名和密码,进行授权.

    为了维护的方便,将要check out的文件列表放在一个文本文件里面,每一个文件占一行.
     将需要check out文件所在文件夹的URL(baseurl),用户名(user),密码(passwd)和存储文件列表的文件名称(fileList)放在配置文件里面.

    另外做了几个exception的处理: 文件不存在,用户名 密码 错误 和 URL 错误.
    要注意的是 HTTPError 是 URLError 的子集, 因此要先捕获HTTPError, 不然错误总是被URLError 捕获.

    代码结构:

    |__GetFilesFromSVN.py

    |__config.ini

    |__fileList.txt

    代码:

     GetFilesFromSVN.py

    001
    #----------------------------------------------
    002
    # Author    : Jeff Yu
    003
    # Date      : 2012-8-13
    004
    # Function  : get files from SVN
    005
    #----------------------------------------------
    006
     
    007
    #----------------------------------
    008
    # Step1: Get INFO
    009
    #----------------------------------
    010
    import sys,ConfigParser
    011
     
    012
    try:
    013
        configFile = open("config.ini","r")
    014
    except IOError:
    015
        print "config.ini is not found"
    016
        raw_input("")
    017
        sys.exit()
    018
     
    019
    config = ConfigParser.ConfigParser()
    020
    config.readfp(configFile)
    021
    configFile.close()
    022
     
    023
    # get baseurl
    024
    try:
    025
        baseurl = config.get("INFO","baseurl")
    026
     
    027
        # incase last "/" is missing in baseurl
    028
        baseurl = baseurl.rstrip("/")
    029
        baseurl = "%s/"%baseurl
    030
    except ConfigParser.NoOptionError:
    031
        print "baseurl is not found under section INFO in config.ini."
    032
        raw_input("")
    033
        sys.exit()
    034
            
    035
    # get user
    036
    try:
    037
        user = config.get("INFO","user")
    038
    except ConfigParser.NoOptionError: 
    039
        meg = "user is not found under section INFO in config.ini."
    040
        raw_input("")
    041
        sys.exit()
    042
     
    043
    # get passwd  
    044
    try:
    045
        passwd = config.get("INFO","passwd")
    046
    except ConfigParser.NoOptionError:
    047
        meg = "passwd is not found under section INFO in config.ini."
    048
        raw_input("")
    049
        sys.exit()
    050
     
    051
    # get fileList 
    052
    try:
    053
        fileList = config.get("INFO","fileList")
    054
    except ConfigParser.NoOptionError:
    055
        meg = "fileList is not found under section INFO in config.ini."
    056
        raw_input("")
    057
        sys.exit()
    058
     
    059
     
    060
    #----------------------------------
    061
    # Step2: Auth
    062
    #----------------------------------
    063
    import urllib2
    064
    realm = "Subversion Repositories"
    065
    auth = urllib2.HTTPBasicAuthHandler()
    066
    auth.add_password(realm, baseurl, user, passwd)
    067
    opener = urllib2.build_opener(auth, urllib2.CacheFTPHandler)
    068
    urllib2.install_opener(opener)
    069
     
    070
     
    071
    #----------------------------------
    072
    # Step3: Create Folder
    073
    #----------------------------------
    074
    import os
    075
    folderName = "svnFile"
    076
    if not os.path.exists(folderName):
    077
        os.mkdir(folderName)
    078
     
    079
     
    080
    #----------------------------------
    081
    # Step4: Get Files
    082
    #----------------------------------
    083
    fr = open(fileList,'r')
    084
    for i in fr:
    085
        i = i.strip("\n")
    086
        i = i.strip(" ")
    087
        
    088
        # ignore the blank line
    089
        if i != "":
    090
            url = "%s%s"%(baseurl,i)
    091
     
    092
            try:
    093
                data = urllib2.urlopen(url)
    094
     
    095
                fw = open("%s/%s"%(folderName,i),'w')
    096
                fw.write(data.read())
    097
                fw.close()
    098
     
    099
                print "Download: %s."%i
    100
     
    101
            except urllib2.HTTPError, e:
    102
                # HTTPError is a subclass of URLError
    103
                # need to catch this exception first
    104
                mesg = str(e).split(" ")
    105
                errCode = mesg[2].rstrip(":")
    106
                
    107
                if errCode == "401":
    108
                    # HTTP Error 401: basic auth failed
    109
                    print "Can not login in, please check the user and passwd in config.ini."
    110
                    break
    111
                elif errCode == "404":
    112
                    # HTTP Error 404: Not Found
    113
                    print "Not Found: %s"%i
    114
                else:
    115
                    print e
    116
                    print "Failed to download %s"%i
    117
     
    118
            except urllib2.URLError:
    119
                # 1.SVN server is down
    120
                # 2.URL is not correct
    121
                print "Please check SVN Server status and baseurl in config.ini."
    122
                break
    123
     
    124
    fr.close()
    125
    raw_input("")
    config.ini
    1
    [INFO]
    2
    baseurl = https://xxx/xxx/xxx/xxx/
    3
    user    = 用户名
    4
    passwd  = 密码
    5
    fileList= fileList.txt
    fileList.txt
    1
    aaaaa.txt
    2
    bbbbb.txt
    3
    ccccc.txt
    使用方法:
    1.配置config.ini,配置好需要check out文件所在文件夹的URL(baseurl),用户名(user),密码(passwd)和存储文件列表的文件名称(fileList)

    2.将要check out的文件列表放在文本文件里面(fileList.txt),每一个文件占一行.

    3.双击GetFilesFromSVN.py运行,下载的文件将放在当前文件夹下用过名为svnFile的文件夹里面.

     

    PS:获取realm

    在这个脚本中,我hardcode了一段代码(064行)  realm = "Subversion Repositories"

    关于这个realm,可以使用下面脚本获取:

     
    01
    import urllib2
    02
    import sys
    03
     
    04
    url = '这里写URL'
    05
     
    06
    username = '这里写用户名'
    07
    password = '这里写密码'
    08
     
    09
    req = urllib2.Request(url)
    10
    try:
    11
        handle = urllib2.urlopen(req)
    12
    except IOError, e:
    13
        pass
    14
    else:
    15
        print "This page isn't protected by authentication."
    16
        sys.exit(1)
    17
     
    18
    getrealm = e.headers['www-authenticate']
    19
    print getrealm

    展开全文
  • jenkins关联SVN后,在构建步骤中怎么获取SVN文件并运行python脚本,大佬们抽空帮下忙,谢谢。 问题描述: 1、怎么获取SVN文件,并运行python脚本 2、运行python脚本的时候,是通过Jenkins的插件去运行,...
  • 当我们需要获取SVN管理文件中的差异列表的文件,用来进行其他任务的时候: 我们需要使用的指令: svn diff -r COMMITTED:HEAD --summarize [需要获取的库的路径] > [生成的差异列表文件的路径以及...

    当我们需要获取SVN管理文件中的差异列表的文件,用来进行其他任务的时候:

    我们需要使用的指令:

    svn diff -r COMMITTED:HEAD --summarize [需要获取的库的路径] > [生成的差异列表文件的路径以及名字]

    举例:

    svn diff -r COMMITTED:HEAD --summarize F:\XxMobileCode > C:\Users\ADMIN\Desktop\svndif.txt

        如果绿色的部分只填写差异列表文件的名字,就表示生成在当前路径下面。

        执行这条指令的时候,我们应该在Windows 的Dos窗口下面执行,执行的时候先将我们的目录切换到SVN的安装目录下面,然后执行上面那条语句。执行成功之后就会在目标路径下面生成我们刚才指定的文件。

        在执行的时候,有可能会出现以下的问题:

        'SVN'不是内部或外部命令,也不是可运行的程序或批处理文件

        解决办法:

    一、添加SVN里面的bin目录路径到环境变量

    不会添加环境变量可以参考这个网址:Win10修改环境变量教程

    二、如果环境变量添加成功之后还是会报错,那么应该是SVN安装的时候有一个选项没有勾选。打开SVN安装程序,假装第一次安装,因为如果有组件已经安装,SVN安装的时候就会自动跳过,直到下面这个画面:

    然后点击下拉键,然后选择第一个选项:Will be install on local hard drive (将要被安装在硬盘)

    选择好之后,安装完成。

    进入Dos窗口,然后输入:svn,出现下面的场景就表明ok了:

    展开全文
  • includeemptydirs="true"> 删除.svn文件 includeemptydirs="true"> 删除除了.svn文件以外的文件
    <?xml version="1.0" encoding="UTF-8"?>
    
    <project name="Delete.SVN" default="DEL.SVN" basedir=".">
        
        <target name="DEL.SVN">
            <echo message="Delete *.svn file and folder"></echo>
    		<delete verbose="true"
    			includeemptydirs="true">
    			<fileset dir="." includes="**/.svn/" defaultexcludes="false"/>
    		</delete>
        </target>
        
    </project>
    

    删除.svn文件



    <?xml version="1.0" encoding="UTF-8"?>
    
    <project name="Delete.SVN" default="DEL.EX.SVN" basedir=".">
        
        <target name="DEL.EX.SVN">
            <echo message="Delete file and folder excludes *.svn"></echo>
    		<delete verbose="true"
    			includeemptydirs="true">
    			<fileset dir="." excludes="**/.svn/" defaultexcludes="false"/>
    		</delete>
        </target>
        
    </project>
    

    删除除了.svn文件以外的文件

    展开全文
  • 命令行获取svn版本号

    千次阅读 2018-05-04 18:49:23
    方法1、可以在命令行中获取svn版本号`svnversion -c |sed 's/^.*://' |sed 's/[A-Z]*$//'` 的方法,看看能不能获取版本号 方法2、可以在命令行和脚本文件中使用${srcPath}是svn的工作目录svnRev=`svn info ${...

    方法1、可以在命令行中获取svn版本号

    `svnversion -c |sed 's/^.*://' |sed 's/[A-Z]*$//'` 的方法,看看能不能获取版本号 

    方法2、可以在命令行和脚本文件中使用

    ${srcPath}是svn的工作目录

    svnRev=`svn info  ${srcPath} | grep "Last Changed Rev" | grep "[0-9]*"`

    svnV=`echo $svnInfo|grep -o '[0-9]\+'`
    echo "svnV: " ${svnV}
    展开全文
  • SVN 文件过滤设置

    千次阅读 2015-12-09 14:33:11
    SVN 文件过滤设置  在用svn管理版本时,有时希望在提交到服务器时,能过滤掉指定后缀名的所有文 件,或指定名称的文件夹、文件名,我们常常会进行SVN的过滤设置,主要步骤:VS设 置—svn设置—单元测试—版本恢复...
  • 获取svn最新版本号示例 以及svn常用命令,示例下载后 右键--编辑 查看命令
  • 通过命令行获取svn版本号

    千次阅读 2019-06-10 09:48:49
    通过命令行获取svn版本号 代码如下: ::GetURLSvnVision set svnURL="YourURL" svn info %svnURL% | findstr "Rev:" > Version.txt for /f "tokens=4 delims= " %%i in (Version.txt) do set rev=%%i echo ...
  • 获取 SVN 一段时间内文件改动列表

    千次阅读 2016-04-07 14:37:02
    Web产品(例如网站, WebApp)在做新版本发布时, 一般我们需要提交一个待发布文件的列表, 增量更新到生产环境的服务器上, 没有做整体替换. 这个待发布文件列表其实就是一个所有改动文件的列表, 列出了新增, 修改, 删除...
  • Web产品(例如网站, WebApp)在做新版本发布时, 一般我们需要提交一个待发布文件的列表, 增量更新到生产环境的服务器上, 没有做整体替换. 这个待发布文件列表其实就是一个所有改动文件的列表, 列出了新增, 修改, 删除...
  • 删除SVN文件 Delete SVN Folders.reg

    千次阅读 2014-10-13 11:45:10
    删除SVN文件 Delete SVN Folders.reg
  • 在代码中获取SVN版本号

    千次阅读 2021-01-21 17:20:08
    方法1:提交时修改版本 SVN hook功能(钩子) 在项目SVN根目录底下右键->...标识执行根目录底下 svn_version.bat文件 linux系统用shell脚本 下面选项选择Wait for the script to finish和Always exe...
  • linux下svn的.svn文件越来越大,怎么减小体积呢 在windows上有小乌龟的清理副本选项,但是我查阅了svn操作手册没有这个指令, 可能是小乌龟自己做的功能。
  • .svn文件太大解决办法

    万次阅读 2018-11-02 13:40:09
    svn下载代码后一段时间.svn文件会很大,包含了各种备份文件,但是如果直接删除.svn文件里的内容的话再执行svn命令又会报错,所以我们可以采用tortoiseSVN自带的cleanup为文件夹瘦身 操作步骤:右键svn文件夹 ---&...
  • svn文件回滚到某个历史版本

    千次阅读 2016-03-07 15:43:33
    有时候想要将svn中的某个文件回滚到历史某个版本,可以这样做:1 打开历史版本界面选中这个文件,右键 Team -> Show History2 回归历史版本选中那个你想恢复到的过去的版本,右键 Update To,如图:然后点击确定:3 ...
  • 清除svn文件的bat脚本整理

    千次阅读 2015-08-18 10:41:05
    比较直接的代码,循环删除当前目录及子目录下所有的SVN文件 @echo on color 2f mode con: cols=80 lines=25 @REM @echo 正在清理SVN文件,请稍候...... @rem 循环删除当前目录及子目录下所有的SVN文件 @rem ...
  • SVN文件排除

    千次阅读 2014-06-23 17:23:41
    项目组长和组员对SVN进行设置,保证解决方案中的图标显示正常。
  • 如何删除本地项目文件中的.svn文件

    万次阅读 2018-06-13 18:10:55
    在使用svn时,有时不小心错下载了文件,或者文件出现问题,需要删除 .svn文件,如果文件夹很多,一个一个手动删除,非常麻烦,网上终于找到了一个简单的方法,现分享(备注,有些人很不负责,贴了代码,也不测试...
  • 解决Eclipse SVN文件冲突详解

    万次阅读 2017-01-13 15:16:39
    在使用Eclipse SVN插件进行团队开发的过程,假设开发人员A和B都获取了同一个文件的最新版本(假如版本号为8),并都对其进行了改动,成员A已经提交了自己所作的改动(版本号变为9),如果此时成员B想要提交自己的改动,...
  • svn搜索文件

    千次阅读 2019-08-23 17:30:45
    转自:https://my.oschina.net/fxtxz2/blog/1921913 命令格式: svn list -R <URL> | grep -E "<fileName>" 示例: svn list -R https://192.168.7.88/test/ | grep -E "hello.c
  • wget 下载svn文件

    千次阅读 2012-05-08 11:45:55
    有些google code上的工程文件放错了位置? 下不回来,如果用 svn checkout http://curriculumusingqtandmysql.googlecode.com/svn/trunk/ curriculumusingqtandmysql-read-only 只能读取...
  • svn设置文件提交过滤

    万次阅读 2018-07-13 09:57:32
    svn提交文件的时候为了避免一些不必要的文件也提交到资源库,比如:.project或者.classpath其实这些文件都是本地开发工具所产生的文件,这些文件是不需要上传的,因为其他人不一定用这个开发工具,因此需要把这些...
  • 实际项目中经常遇到的场景是一个项目copy一份改个名字用去另外一个新项目的壳子,但是上传svn时需要清除其目录下的所有.svn隐藏文件才可以。 下面介绍一个非常简单有效的... * 删除指定目录.svn文件 * @author ardo
  • IDEA 忽略SVN文件不提交

    千次阅读 2019-08-26 11:24:32
    IDEA版本 2019.1.2 忽略svn文件提交,分两种情况。 一、文件没有纳入版本管理 文件还没有纳入版本管理,这种通过 svn的ignore配置 version control--》local changes--》configure ignored files, 忽略文件分几大...
  • 批量删除.svn文件夹、.svn文件

    万次阅读 2014-10-16 11:32:18
    使用svn进行版本控制,每个文件夹下都有.svn文件夹,有些项目在脱离...1、打开要删除.svn文件的最外层文件夹,按ctrl+f,打开文件搜索窗口; 2、在窗口左边点击选择"所有文件和文件夹",在"这里寻找"会自动选中刚
  • svn文件出现黄叹号

    千次阅读 2019-04-08 14:56:06
    1 svn出现黄叹号,提交文件时,出现已经被删除的文件 2 解决的方法: 点击文件,右击出现TortoiseSVN——>Resolve...就可以了
  • SVN 文件状态标记含义

    万次阅读 2012-03-20 18:10:28
    svn 文件状态标记含义 svn status打印五列字符,紧跟一些空格,接着是文件或者目录名。第一列告诉一个文件的状态或它的内容,返回代码解释如下: A item 文件、目录或是符号链item预定加入到版本库。 C item...
  • Eclipse-----SVN文件锁定

    千次阅读 2016-09-25 00:26:20
    Eclipse-----SVN文件锁定
  • java实现自动获取svn差异化列表

    千次阅读 2012-12-08 16:33:34
    今天在开发完毕的时候,又需要整理代码文件列表。顿时感觉很繁琐。虽然不是很费时,但是终于... 因为svn提交的时候提供的有代码列表,我咨询其他同事,他们一般都是通过全部复制此代码列表,然后再修改文件格式,使之
  • 没有隐藏的.svn文件夹,说明客户端的这些内容不是检出(checkout)的,而是导出(export)的,在这个隐藏文件夹中存放的是SVN的控制信息,缺了这个自然就没有绿钩了要解决这个问题只能从服务器上重新checkout到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 199,489
精华内容 79,795
关键字:

怎么获取svn的文件