Obsługa repozytoriów SVN za pomocą pySVN
14 July 2008
Comments
Instalacja ze źródeł
Niektóre dystrybucje dostarczają pySVN w gotowych pakietach a jeżeli nie to można łatwo zainstalować tą bibliotekę. Pobieramy źródła z pysvn.tigris.org a następnie: - Rozpakowujemy źródła- Przechodzimy do katalogu Source i wykonujemy:
python setup.py configure make
-lgssapi_krb5 -lkrb5 -lk5crypto -lkrb5support
A następnie ponów:
python setup.py configure make
Po udanej kompilacji jako root tworzymy katalog pysvn i kopiujemy bibliotekę:
mkdir /usr/python*/site-packages/pysvn cp pysvn/__init__.py /usr/python*/site-packages/pysvn cp pysvn/_pysvn.so /usr/python*/site-packages/pysvn
Przykłady zastosowań
W katalogu Docs znajdziemy opis API oraz przykładowe zastosowania. Oto dwa przykłady:Potrzebujemy jakiś checkout z repozytorium SVN. Podajemy do niego ścieżkę oraz dokonujemy kilka zmian w zawartych plikach:
import pysvn
client = pysvn.Client()
changes = client.status('/jakis/checkout')
print 'pliki do dodania:'
print [f.path for f in changes if f.text_status == pysvn.wc_status_kind.added]
print 'pliki do usuniecia:'
print [f.path for f in changes if f.text_status == pysvn.wc_status_kind.deleted]
print 'pliki zmodyfikowane:'
print [f.path for f in changes if f.text_status == pysvn.wc_status_kind.modified]
print 'pliki z konfliktami:'
print [f.path for f in changes if f.text_status == pysvn.wc_status_kind.conflicted]
print 'pliki nie podlegajace wersjonowaniu:'
print [f.path for f in changes if f.text_status == pysvn.wc_status_kind.unversioned]
import pysvn
client = pysvn.Client()
client.checkout('http://localhost/repozytorium/trunk', './pobrane/pysvn')
RkBlog
Comment article