Вы можете просто использовать модуль Python subprocess
:
from subprocess import Popen, PIPE
p = Popen('svn log -v --stop-on-copy http://subversion.repository.com/svn/repositoryname',
stdout=PIPE)
stdout, stderr = p.communicate()
Таким образом, вы можете запустить любую команду SVN, которую вы хотите: просто проверьте stdout
(и, возможно, stderr
), чтобы получить результат команды. Затем вы можете использовать, например, регулярное выражение для анализа полученных данных:
>>> s = Popen('svn log', shell=True, stdout=PIPE).communicate()[0]
>>> m = re.search('\r\nr(?P<rev>\d+)\s+\|\s+(?P<author>\w+)\s+\|\s+(?P<timestamp>.*?)\s|', s)
{'timestamp': '2011-10-10 10:45:01 +0000 (wed, okt 10 2011)',
'rev': '1234',
'author': 'someuser'
}