私は次のように単一のファイルのコミット履歴にアクセスしようとしています:
_git log --follow -- <filename>
_
私は gitpython を使用する必要があるので、私が今やっていることは:
_import git
g = git.Git('repo_dir')
hexshas = g.log('--pretty=%H','--follow','--',filename).split('\n')
_
次に、コミットオブジェクトをビルドします。
_repo = git.Repo('repo_dir')
commits = [repo.rev_parse(c) for c in r]
_
よりgitpython-icな方法でそれを行う方法はありますか? commit.iter_parents()
とcommit.iter_items()
の両方を試しましたが、どちらも_git-rev-list
_に依存しているため、_--follow
_オプションがありません。
例えば、
範囲時間あり:
g = git.Git("C:/path/to/your/repo")
loginfo = g.log('--since=2013-09-01','--author=KIM BASINGER','--pretty=tformat:','--numstat')
print loginfo
出力:
3 2 path/in/your/solutions/some_file.cs
追加された行、削除された行、およびこれらの変更を含むファイルを確認できます。
代わりにPyDrillerを使用することをお勧めします(内部でGitPythonを使用しています)。はるかに使いやすい:
for commit in RepositoryMining("path_to_repo", filepath="here_the_file").traverse_commits():
# here you have the commit object
print(commit.hash)