我正在尝试将git中的日志信息记录到python中。我查看了pygit2和gitpython,但似乎都没有提供类似于git shortlog的高级接口。是否有一个python库提供这样的接口,或者我应该只调用git可执行文件?
答案 0 :(得分:3)
我假设你的意思pygit2
是你看过的图书馆之一。这是一个较低级别的库,可以让你在它之上编写一个更高级别的库(它已经足够高级了,是否需要3行代码才能获得基本的日志输出?)。做你想做的事情并不困难 - 阅读relevant documentation,你可以想出类似的东西:
>>> from pygit2 import Repository
>>> from pygit2 import GIT_SORT_TIME
>>> from pygit2 import GIT_SORT_REVERSE
>>> repo = Repository('/path/to/repo')
>>> rev = repo.revparse_single('HEAD').hex
>>> iterator = repo.walk(rev, GIT_SORT_TIME | GIT_SORT_REVERSE)
>>> results = [(commit.committer.name, commit.message.splitlines()[0])
... for commit in iterator]
>>> results
[(u'User', u'first commit.'), (u'User', u'demo file.'), ... (u'User', u'okay?')]
如果你想将输出分组为git shortlog
,即使它也不是很难,你需要的所有数据都已经在迭代器中,所以只需用它来将数据放入你需要的格式。