Извлечение git time recursivley для подпапок и файлов
Я пытаюсь создать словарь с элементами в формате имя файла: отметка времени в гг-мм-дд чч: мм: сс. Это должно рекурсивно включать все подпапки и файлы в репо. Я наткнулся на этот кусок кода:
import git
repo = git.Repo("./repo")
tree = repo.tree()
for blob in tree:
commit = repo.iter_commits(paths=blob.path, max_count=1).next()
print(blob.path, commit.committed_date)
Однако сюда входят только основные подпапки. Как рекурсивно включать подпапки и файлы
Примечание: следующее решение Роланда здесь не включает в себя подпапки, а только файлы. Также мне нужно попасть в путь, куда загружается git repo, а затем запустить скрипт, указав его абсолютный путь
Получить время последнего коммита для файлов репозитория Git через Python?
1 ответ
Это работает для меня
http://gitpython.readthedocs.io/en/stable/tutorial.html
Согласно документу. Поскольку деревья разрешают прямой доступ только к своим промежуточным дочерним записям, используйте метод traverse для получения итератора для рекурсивного извлечения записей.
Это создает объект генератора, который делает работу
print tree.traverse()
<generator object traverse at 0x0000000004129DC8>
d=dict()
for blob in tree.traverse():
commit=repo.iter_commits(paths=blob.path).next()
d[blob.path]=commit.committed_date