[PATCH 1 of 3] scripts: docs-headings: improve performance by grouping 'hg diff' invocations

Thomas De Schampheleire patrickdepinguin at gmail.com
Sun Dec 30 12:56:29 UTC 2018


# HG changeset patch
# User Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
# Date 1546166728 -3600
#      Sun Dec 30 11:45:28 2018 +0100
# Node ID 99c28d4459286261f7e798ab3fe60be3b0be2e7e
# Parent  e7d6373631c4f41fc6eed16a670b576d94777ea5
scripts: docs-headings: improve performance by grouping 'hg diff' invocations

With SSD, this change reduces the execution time of this script from 8 to
0.5 seconds

diff --git a/scripts/docs-headings.py b/scripts/docs-headings.py
--- a/scripts/docs-headings.py
+++ b/scripts/docs-headings.py
@@ -30,7 +30,8 @@ headermatch = re.compile(r'''\n*(.+)\n([
 
 
 def main():
-    for fn in subprocess.check_output(['hg', 'loc', 'set:**.rst+kallithea/i18n/how_to']).splitlines():
+    filenames = subprocess.check_output(['hg', 'loc', 'set:**.rst+kallithea/i18n/how_to']).splitlines()
+    for fn in filenames:
         print 'processing %s:' % fn
         s = open(fn).read()
 
@@ -72,8 +73,8 @@ def main():
         s = re.sub(r'''\n+((?:\.\. _[^\n]*\n)+)$''', r'\n\n\n\1', s)
 
         open(fn, 'w').write(s)
-        print subprocess.check_output(['hg', 'diff', fn])
-        print
+
+    print subprocess.check_output(['hg', 'diff'] + filenames)
 
 if __name__ == '__main__':
     main()


More information about the kallithea-general mailing list