pysvn安装及常用方法
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安装及常用方法的更多相关文章
- Python之——python-nmap的安装与常用方法说明
一.python-nmap安装 # yum -y install nmap #安装nmap工具# 模块pip方式安装# pip install nmap# 模块源码安装# wget http://xa ...
- Linux上安装Nginx及常用命令
一.Linux安装软件常用方法 1.rpm(或pkg)安装,类似于Windows安装程序,是预编译好的程序. 1)使用的是通用参数编译,配置参数不是最佳 2)可控制性不强,比如对程序特定组件的定制性安 ...
- python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...
- python---filecmp
ilecmp可以实现文件,目录,遍历子目录的差异对比功能. 自带filecmp模块,无需安装. 常用方法说明 filecmp提供3个操作方法,cmp(单文件对比),cmpfile(多文件对比),dir ...
- 洗礼灵魂,修炼python(65)--爬虫篇—BeautifulSoup:“忘掉正则表达式吧,我拉车养你”
前面解析了正则表达式,其实内容还挺多的对吧?确实挺适用的,不仅是python,其他语言或者web前端后端基本都要掌握正则表达式知识,但是你说,这么多,要完全的掌握,灵活运用的话,得搞多久啊?并且如果一 ...
- Android数据存储:SDCard
Android数据存储之SDCard 0.获取sd卡路径. 1.讲述 Environment 类. 2.讲述 StatFs 类. 3.完整例子读取 SDCard 内存 0.获取sd卡路径 方法一: p ...
- Linux----常用操作
------------------------------------------------------------------------Linux常用操作------------------- ...
- android 获取sd卡根目录
dir:/storage/emulated/0 也就是 sdcard目录 ====== android 获取sd卡根目录 public String getSDPath(){ File ...
- Android获取SD卡路径及SDCard内存的方法
这篇文章主要介绍了Android获取SD卡路径及SDCard内存的方法,较为详细的分析了Android针对SD卡操作所涉及的类及其具体函数功能,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了A ...
随机推荐
- Java中JDBC连接数据库代码和步骤详解总结
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Jav ...
- Dreamweaver的代码与设计简单结合的运用
首先在设计里面写好自己需要的内容,在文字设置中,选中要设置的文字,然后点击属性栏的css,把目标规则改为新内联样式,然后在改变字体的大小颜色样式,然后在代码里面根据需要再修改: 图片插入是在菜单栏点击 ...
- shell计算小问题
1.shell处理两数相加时报错: req_all=$(($hits+$misses)) error: invalid arithmetic operator (error token is &quo ...
- mysql 命令行操作1
查看版本号 :SELECT @@version;或者status; 1.设置数据库系统的事务隔离级别 mysql> set global transaction isolation level ...
- Windows Server 2008 R2安装子域控制器
一.实验网络拓扑图: 二.实验说明: 子域控制器安装前需要先把主域控制器安装好,然后子域控制器的DNS先指向主域控制器的IP地址 192.168.10.30,主域控制器委派DNS给子域控制器后再把子域 ...
- spark编写word count
创建SparkContext对象的时候需要传递SparkConf对象,SparkConf至少需要包含spark.master和spark.app.name这两个参数,不然的话程序不能正常运行 obje ...
- Jquery操作select,左右移动,双击移动 取到所有option的值
$(function () { function MoveItem(fromId, toId) { $("#" + fromId + " option:selected& ...
- Infinite V1 Release Note
游戏地址 PLAY 玩法说明 WASD 控制角色移动 更新内容 - 初步完成了角色移动(攻击状态) 开发心得 独立做游戏 其实最耽误时间的就是在自己的短板上, 对于我来说 就是3D建模和动作制作. ...
- 【小窍门】cmd控制台无法输入中文(日文),输出非英文字符都是问号解决办法,中文都是问号解决办法
在网上复制了一段代码,里面含有中文,而自己电脑本身系统是英文 win8/win10, 在VS 里debug之后输出后,中文都是问号.并不是乱码什么的. 奇怪了. 打开cmd,输入日文的时候,显示IME ...
- GCC-4.6.3编译linux2.6.32.12内核出现“重复的成员‘page’”错误的解决方法
使用gcc4.6.3编译linux2.6.32.12内核出现错误如下: In file included from drivers/net/igbvf/ethtool.c:36:0: drivers/ ...