我需要找到分支的第一个提交者,而不必对所有整个分支进行检出。从命令行很容易做到:
svn log -v --stop-on-copy http://subversion.repository.com/svn/repositoryname
Run Code Online (Sandbox Code Playgroud)
我需要从python脚本执行此操作,知道如何执行该操作?我检查了python颠覆绑定,但是即使看起来可以完成,但我还是不明白该怎么做。
任何帮助将不胜感激。
您可以只使用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()
Run Code Online (Sandbox Code Playgroud)
这样,您可以运行所需的任何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'
}
Run Code Online (Sandbox Code Playgroud)