]> git.phdru.name Git - git-scripts.git/blobdiff - set-commit-date.py
Refactor: Factor out run-recursive
[git-scripts.git] / set-commit-date.py
index 70e393296053605689794d6aae43a7df67c7806d..7f481f36960251b382b9d0b756fed9563e521619 100755 (executable)
@@ -8,17 +8,22 @@
 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().strip()
+for line in git_log.stdout:
+    line = line.strip()
     if (stage in (1, 4)) and (line == separator):  # Start of a commit
         stage = 2
     elif stage == 2:
@@ -30,8 +35,6 @@ while True:
             continue
         stage = 4
         assert line == '', line
-    elif not line:
-        break
     elif stage == 4:
         filename = line
         if filename not in filenames: