hghave: add has_git_range for testing if git understands ext::sh
authorSean Farley <sean@farley.io>
Thu, 15 Jun 2017 17:13:23 -0700
changeset 32901 559db66dead5
parent 32900 07d5a503124c
child 32902 642feee29d70
hghave: add has_git_range for testing if git understands ext::sh Even on CentOS 7, git is at version 1.8. It seems git 1.9 is when ext::sh was introduced so we a check for that. The way these functions are written follows the same style and format for the way we check svn and bzr versions.
tests/hghave.py
--- a/tests/hghave.py	Sat Jun 17 23:09:47 2017 -0700
+++ b/tests/hghave.py	Thu Jun 15 17:13:23 2017 -0700
@@ -278,6 +278,17 @@
 def has_git():
     return matchoutput('git --version 2>&1', br'^git version')
 
+def getgitversion():
+    m = matchoutput('git --version 2>&1', br'git version (\d+)\.(\d+)')
+    if not m:
+        return (0, 0)
+    return (int(m.group(1)), int(m.group(2)))
+
+@checkvers("git", "git client (with ext::sh support) version >= %s", (1.9,))
+def has_git_range(v):
+    major, minor = v.split('.')[0:2]
+    return getgitversion() >= (int(major), int(minor))
+
 @check("docutils", "Docutils text processing library")
 def has_docutils():
     try: