GitPython получает коммит для файла - PullRequest
4 голосов
/ 20 августа 2010

Я пытаюсь использовать gitpython для получения данных в дереве ... для получения списка, когда файл был зафиксирован, и задан журнал ... насколько я получил, это

from git import *
repo = get_repo("/path/to/git/repo")
for item in repo.tree().items():
    print item[1]

Это просто списоктакие вещи, как

<git.Tree "ac1dcd90a3e9e0c0359626f222b99c1df1f11175">
<git.Blob "764192de68e293d2372b2b9cd0c6ef868c682116">
<git.Blob "39fb4ae33f07dee15008341e10d3c37760b48d63">
<git.Tree "c32394851edcff4bf7a452f12cfe010e0ed43739">
<git.Blob "6a8e9935334278e4f38f9ec70f982cdc4f42abf0">

Я не вижу нигде в документации git.Blog, что вы можете получить эти данные ... я лаю не на том дереве?

Ответы [ 4 ]

4 голосов
/ 05 января 2013

Любой, кто хочет сделать это сейчас, будет:

Последние 100 отсортированы по убыванию:

repo.iter_commits('master', max_count=100)

Вы можете использовать skip для подкачки:

repo.iter_commits('master', max_count=10, skip=20)

Ссылка: http://gitpython.readthedocs.org/en/stable/tutorial.html#the-commit-object

2 голосов
/ 20 августа 2010

Через 4 часа .. Я наконец получил это

repo = get_repo("/path/to/git/repo")

items = repo.tree().items()
items.sort()

for i in items:
    c = repo.commits(path=i[0], max_count=1)
    print i[0], c[0].author, c[0].authored_date, c[0].message
1 голос
/ 20 августа 2010

Сообщение фиксации находится в commit object, , а не tree object. Я думаю, вы можете получить это с

repo.heads[0].commit.message

(примечание: я не знаю python. Это основано на моих знаниях git и минуте на чтении api docs)

0 голосов
/ 20 августа 2010

Полагаю, вы можете использовать blob.data_stream(), чтобы получить файлоподобный объект, содержащий необработанное содержимое данных.

Однако я никогда раньше не использовал этот API, так что я могу немного отключиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...