diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py
--- a/mercurial/subrepo.py
+++ b/mercurial/subrepo.py
@@ -1135,6 +1135,14 @@ class gitsubrepo(abstractsubrepo):
             self._ui.warn(_('git subrepo requires at least 1.6.0 or later\n'))
 
     @staticmethod
+    def _gitversion(out):
+        m = re.search(r'^git version (\d+)\.(\d+)', out)
+        if m:
+            return (int(m.group(1)), int(m.group(2)))
+
+        return -1
+
+    @staticmethod
     def _checkversion(out):
         '''ensure git version is new enough
 
@@ -1158,13 +1166,12 @@ class gitsubrepo(abstractsubrepo):
         >>> _checkversion('no')
         'unknown'
         '''
-        m = re.search(r'^git version (\d+)\.(\d+)', out)
-        if not m:
-            return 'unknown'
-        version = (int(m.group(1)), int(m.group(2)))
+        version = gitsubrepo._gitversion(out)
         # git 1.4.0 can't work at all, but 1.5.X can in at least some cases,
         # despite the docstring comment.  For now, error on 1.4.0, warn on
         # 1.5.0 but attempt to continue.
+        if version == -1:
+            return 'unknown'
         if version < (1, 5):
             return 'abort'
         elif version < (1, 6):