import os
import subprocess
+git_root = subprocess.check_output(['git', 'rev-parse', '--show-toplevel'],
+ universal_newlines=True).rstrip('\n')
+os.chdir(git_root)
+
separator = '----- GIT LOG SEPARATOR -----'
git_log = subprocess.Popen(['git', 'log', '-m', '--first-parent',
'--name-only', '--no-color',
'--format=%s%%n%%ct' % separator],
- stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ universal_newlines=True)
filenames = set()
# stages: 1 - start of commit, 2 - timestamp, 3 - empty line, 4 - files
stage = 1
-while True:
- line = git_log.stdout.readline()
- if not line: # EOF
- break
+for line in git_log.stdout:
line = line.strip()
if (stage in (1, 4)) and (line == separator): # Start of a commit
stage = 2