git log –follow, the gitpython way

I am trying to access the commit history of a single file as in:

git log --follow -- <filename>

I have to use gitpython, so what I am doing now is:

  • Remove intermediate commit in Visual Studio Online
  • Git Merge Out of Sync Repos
  • Git fatal: remote end hung up
  • Are there any downsides to enabling git rerere?
  • Make TeamCity pull down all git branches
  • git error: gnutls_handshake() failed on push
  • import git 
    g = git.Git('repo_dir') 
    hexshas = g.log('--pretty=%H','--follow','--',filename).split('\n') 
    

    then I build commit objects:

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

    Is there a way to do it in a more gitpython-ic way?
    I tried both commit.iter_parents() and commit.iter_items(), but they both rely on git-rev-list, so they don’t have a --follow option.

  • Import a CVS repository into GIT results in some misleading behaviors related to timestamps
  • Git interoperability with a Mercurial Repository
  • Git repository setup for development from two machines?
  • git-svn died of signal 10 on OSX
  • Can I split an already split hunk with git?
  • Git subtree tags
  • One Solution collect form web for “git log –follow, the gitpython way”

    For example,

    With range time:

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

    Output:

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

    You can see the added lines, removed lines and the file with these changes.

    Git Baby is a git and github fan, let's start git clone.