pysvnの設置及び一般的な方法
centos 6.5、svn 1.6.11、pysvn 1.7.6、文章の内容は公式サイトからの文書です。http://pysvn.tigris.org/docs/pysvn_progガイド.
直接yumでインストールすればいいです。
直接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') #
overentries_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 #
転載先:https://www.cnblogs.com/toSeek/p/6187791.html