2012-04-09 34 views
25

Próbuję uzyskać dostęp do popełnienia historii jako jeden plik w:git log --follow, sposób gitpython

git log --follow -- <filename> 

muszę używać gitpython, więc to, co robię teraz to:

import git 
g = git.Git('repo_dir') 
hexshas = g.log('--pretty=%H','--follow','--',filename).split('\n') 

potem budować popełnić obiekty:

repo = git.Repo('repo_dir') 
commits = [repo.rev_parse(c) for c in r] 

Czy istnieje sposób, aby zrobić to w bardziej gitpython-ic sposób? Próbowałem zarówno commit.iter_parents() i commit.iter_items(), ale obaj polegają na git-rev-list, więc nie mają opcji --follow.

Odpowiedz

7

Na przykład

Z czasem zakres:

g = git.Git("C:/path/to/your/repo") 
loginfo = g.log('--since=2013-09-01','--author=KIM BASINGER','--pretty=tformat:','--numstat') 
print loginfo 

wyjściowa:

3  2  path/in/your/solutions/some_file.cs 

Widać dodane linie usunięte linie i plik z tymi zmianami.

Powiązane problemy