centos 6.5,svn 1.6.11,pysvn 1.7.6,文章内容来自官网文档:http://pysvn.tigris.org/docs/pysvn_prog_guide.html

直接用yum安装即可

yum install pysvn -y

创建一个client

import pysvn
def get_login(realm, username, may_save):
retcode = True #True,如果需要验证;否则用False
username = 'myuser' #用户名
password = 'mypwd' #密码
save = False #True,如果想之后都不用验证;否则用False
return retcode, username, password, save
client = pysvn.Client()
client.callback_get_login = get_login

用这个client进行下面的各种操作

svnurl = 'svn://......'    #svn的路径
outpath = './test' #检出到的目标路径
client.checkout(svnurl, outpath) #检出最新版本
rv = pysvn.Revision(pysvn.opt_revision_kind.number, 1111))
client.checkout(svnurl, outpath, revision=rv) #检出指定版本
#Revision类型可以通过rv.number获取对应的数字
entry = client.info('./test')
print entry.url #拷贝对应的svn url
print entry.commit_revision #最新提交的revision
print entry.commit_author #最新提交的用户
import time
t = time.localtime(entry.commit_time) #最新提交的时间
print time.strftime('%Y-%m-%d %H:%M:%S', t)
entries_list = client.ls('./other')
for en in entries_list:
print en.name,en.size,en.time,en.last_author #文件属性
print en.created_rev #文件的revision
print en.kind #文件类型,file,dir,none,unknown 可以通过str(kind)=='file'判断
client.update('./test')    #更新
changes = client.status('./test')  #检测状态,获取各种新增、删除、修改、冲突、未版本化的状态
for f in changes:
if f.text_status == pysvn.wc_status_kind.added:
print f.path,'A'
elif f.text_status == pysvn.wc_status_kind.deleted:
print f.path,'D'
elif f.text_status == pysvn.wc_status_kind.modified:
print f.path,'M'
elif f.text_status == pysvn.wc_status_kind.conflicted:
print f.path,'C'
elif f.text_status == pysvn.wc_status_kind.unversioned:
print f.path,'U'
tmppath = '/tmp'    #对比需要使用临时文件,这个是临时文件的位置,会自动清除
print client.diff(tmppath, './svntest') #效果与svn diff一致
client.add('./svntest/add.txt')    #添加一个文件到版本控制
client.revert('./svntest/modify.txt') #还原文件的修改
client.move('./svntest/move1.txt', './svntest/move2.txt') #重命名或移动
client.remove('./svntest/delete.txt') #删除文件或目录
client.mkdir('./svntest/testdir', '提交message') #新建一个文件夹,提交message这里没用,当第一个参数是svnurl时直接提交才有用

client.checkin(['./svntest/delete.txt'], '提交message')    #提交一个或多个修改
entries_list = client.log('./other', discover_changed_paths=True)
for en in entries_list:
print en.author,en.date,en.message,en.revision #版本信息
for e in en.changed_paths:
print '\t',e.path,e.action #版本具体修改的信息

over

pysvn安装及常用方法的更多相关文章

  1. Python之——python-nmap的安装与常用方法说明

    一.python-nmap安装 # yum -y install nmap #安装nmap工具# 模块pip方式安装# pip install nmap# 模块源码安装# wget http://xa ...

  2. Linux上安装Nginx及常用命令

    一.Linux安装软件常用方法 1.rpm(或pkg)安装,类似于Windows安装程序,是预编译好的程序. 1)使用的是通用参数编译,配置参数不是最佳 2)可控制性不强,比如对程序特定组件的定制性安 ...

  3. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

  4. python---filecmp

    ilecmp可以实现文件,目录,遍历子目录的差异对比功能. 自带filecmp模块,无需安装. 常用方法说明 filecmp提供3个操作方法,cmp(单文件对比),cmpfile(多文件对比),dir ...

  5. 洗礼灵魂,修炼python(65)--爬虫篇—BeautifulSoup:“忘掉正则表达式吧,我拉车养你”

    前面解析了正则表达式,其实内容还挺多的对吧?确实挺适用的,不仅是python,其他语言或者web前端后端基本都要掌握正则表达式知识,但是你说,这么多,要完全的掌握,灵活运用的话,得搞多久啊?并且如果一 ...

  6. Android数据存储:SDCard

    Android数据存储之SDCard 0.获取sd卡路径. 1.讲述 Environment 类. 2.讲述 StatFs 类. 3.完整例子读取 SDCard 内存 0.获取sd卡路径 方法一: p ...

  7. Linux----常用操作

    ------------------------------------------------------------------------Linux常用操作------------------- ...

  8. android 获取sd卡根目录

    dir:/storage/emulated/0 也就是 sdcard目录 ====== android 获取sd卡根目录 public String getSDPath(){        File ...

  9. Android获取SD卡路径及SDCard内存的方法

    这篇文章主要介绍了Android获取SD卡路径及SDCard内存的方法,较为详细的分析了Android针对SD卡操作所涉及的类及其具体函数功能,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了A ...

随机推荐

  1. 《Linux及安全》实践3.1

    <Linux及安全>实践三 ELF格式文件分析 一.基础操作 1.查看大小端.32还是64 由此可以看出,本人实践所用到的是32位Ubuntu,数据存储采用小端法. 2.编写hello.c ...

  2. jvm性能监控与故障处理工具

    jdk为我们提供了一系列的jvm性能监控和故障处理工具,在这里根据学习进度进行整理记录.便于之后查阅 1.jps 虚拟机进程工具  类似于Linux系统中的ps命令,用于查看虚拟机进程,常用的有以下功 ...

  3. Quartz2D 编程指南(四)位图与图像遮罩、CoreGraphics 绘制 Layer

    概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 位图与图像遮罩 简介 位图与图像遮 ...

  4. Oracle 11g中修改默认密码过期天数和锁定次数

    Oracle 11g中修改默认密码过期天数和锁定次数 密码过期的原因一般有两种可能: 一.由于Oracle中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180 ...

  5. 可爱的Python_课后习题_CDay0 时刻准备着!发布

    请根据软件发布的流程和软件开发的编码规范,将读者在前面章节所写的程序修改并发 布出去.另外,可以查找下除了 epydoc 外还有哪些较好的 py 文档生成器? pydoc是Python自带的模块,主要 ...

  6. Hessian怎样实现远程调用

    1.Spring中除了提供HTTP调用器方式的远程调用,还对第三方的远程调用实现提供了支持,其中提供了对Hessian的支持. Hessian是由Caocho公司发布的一个轻量级的二进制协议远程调用实 ...

  7. 阿里 otter搭建过程整理

    1 环境说明: 本机ip 192.168.8.3 虚拟机1 ip 192.168.8.5 虚拟机2 ip 192.168.8.6 虚拟机采取桥接模式 虚拟机系统为CentOS 2.6.32-279.e ...

  8. GPS部标平台的架构设计(四)-百度地图设计

    部标GPS软件平台之百度地图设计 地图是客户端中不可缺少的一个模块,很多人在设计和画图时候,喜欢加上地图引擎这样高大上的字眼,显得自己的平台有内涵,说白了就是用第三方的SDK来开发,早期的GPS监 控 ...

  9. 在Sublime中编辑批处理并运行

    在Sublime->Tool->Build System -> New Build System 复制如下代码名保存为 CMD.sublime-build { "cmd&q ...

  10. Android 自定义view (一)——attr 理解

    前言: 自定义view是android自定义控件的核心之一,那么在学习自定义view之前,我们先来了解下自定义view的自定义属性的attr的用法吧 Android attr 是什么 (1)attr ...