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 ...
随机推荐
- android内存分析:heap Snapshot的使用
网上有很多讲解关于android studio中memory工具的使用,接下来我来说一段在项目中发生的实例:大家可以根据我的这个方法来分析自己项目中的问题 首先我们要通过手动先触发GC操作,点击mem ...
- django--一对多,多对多查询
假设有表的关系如下: class Classes(models.Model): name = models.CharField(max_length=32) institute = models.Ch ...
- 启动Hive时出现的问题
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to i ...
- js的forEach,for in , for of
forEach遍历数组 [].forEach(function(value, index, array) { // ... }); 例子 var myArry =[1,2,3,4]; myArry.d ...
- 使用async 和 await方法来
先看直接的代码请求方式地啊: 这里是我们同步方法的实现: using System; using System.Collections.Generic; using System.Diagnostic ...
- AppScan漏洞“已解密的登陆请求”修复解决方案
最近在修复系统漏洞时,使用新版AppScan扫描IIS站点(WebForm)出现一个严重漏洞“已解密的登陆请求”. 扫描工具修复的建议为在登陆界面不使用含“password”类型的控件或加密录入参数. ...
- CentOS下 pycharm开发环境搭建
经过一系统列的折腾之后,我终于有高版本的python和我熟悉的输入法用了,下面来搭建pycharm下的python开发环境. 1.首先安装java jdk注意是JAVA 的JDK,不是JAVA VM什 ...
- Trace-语句启动Profiler中暂停的跟踪会出现什么状况
2016-09-08 22:09 整理,未发布Profiler创建客户端跟踪.常规页不保存文件.不勾选服务器处理跟踪数据:事件选择RPC:Completed和SQL:BatchCompleted,列筛 ...
- spark 简介
spark 是基于内存计算的 大数据分布式计算框架,spark基于内存计算,提高了在大数据环境下处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将spark部署在大量廉价的硬件上,形成集群. 1 ...
- SQL索引添加
EXPLAIN select * from view_agzsaycommont where id >0