jenkins-bot has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1328641?usp=email )

Change subject: version: Count Git revisions directly
......................................................................

version: Count Git revisions directly

Use git rev-list --count instead of capturing every reachable commit hash.

The version string remains unchanged.

Subprocess output and Python allocations no longer grow with repository history.

Change-Id: Ic217ba823c3074a736ee38ff37926e6ed8cfe4de
---
M pywikibot/version.py
1 file changed, 3 insertions(+), 3 deletions(-)

Approvals:
  Xqt: Looks good to me, approved
  jenkins-bot: Verified




diff --git a/pywikibot/version.py b/pywikibot/version.py
index 8d4e272..486c706 100644
--- a/pywikibot/version.py
+++ b/pywikibot/version.py
@@ -167,11 +167,11 @@
     info = info.decode(config.console_encoding).split('|')
     date = info[0][:-6]
     date = time.strptime(date.strip('"'), '%Y-%m-%d %H:%M:%S')
-    dp = subprocess.Popen([cmd, 'rev-list', 'HEAD'],
+    dp = subprocess.Popen([cmd, 'rev-list', '--count', 'HEAD'],
                           cwd=_program_dir,
                           stdout=subprocess.PIPE)
-    rev, stderr = dp.communicate()
-    rev = f'g{len(rev.splitlines())}'
+    rev, _ = dp.communicate()
+    rev = f'g{int(rev)}'
     hsh = info[3]  # also stored in '.git/refs/heads/master'
     if (not date or not tag or not rev) and not path:
         raise VersionParseError

--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1328641?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ic217ba823c3074a736ee38ff37926e6ed8cfe4de
Gerrit-Change-Number: 1328641
Gerrit-PatchSet: 2
Gerrit-Owner: Mahveotm <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to