pysvnの設置及び一般的な方法


centos 6.5、svn 1.6.11、pysvn 1.7.6、文章の内容は公式サイトからの文書です。http://pysvn.tigris.org/docs/pysvn_progガイド.
直接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
転載先:https://www.cnblogs.com/toSeek/p/6187791.html