Share git version parsing code with wrapper module

'repo' and 'git_command.py' had their own git version parsing code.
This change shares that code between the modules.  DRY is good.

Change-Id: Ic896d2dc08353644bd4ced57e15a91284d97d54a
diff --git a/git_command.py b/git_command.py
index 89b681e..354fc71 100644
--- a/git_command.py
+++ b/git_command.py
@@ -21,6 +21,7 @@
 from signal import SIGTERM
 from error import GitError
 from trace import REPO_TRACE, IsTrace, Trace
+from wrapper import Wrapper
 
 GIT = 'git'
 MIN_GIT_VERSION = (1, 5, 4)
@@ -84,19 +85,10 @@
 
   def version_tuple(self):
     global _git_version
-
     if _git_version is None:
       ver_str = git.version().decode('utf-8')
-      if ver_str.startswith('git version '):
-        num_ver_str = ver_str[len('git version '):].strip().split('-')[0]
-        to_tuple = []
-        for num_str in num_ver_str.split('.')[:3]:
-          if num_str.isdigit():
-            to_tuple.append(int(num_str))
-          else:
-            to_tuple.append(0)
-        _git_version = tuple(to_tuple)
-      else:
+      _git_version = Wrapper().ParseGitVersion(ver_str)
+      if _git_version is None:
         print('fatal: "%s" unsupported' % ver_str, file=sys.stderr)
         sys.exit(1)
     return _git_version
diff --git a/repo b/repo
index 56d784f..1587fef 100755
--- a/repo
+++ b/repo
@@ -278,6 +278,20 @@
     raise
 
 
+def ParseGitVersion(ver_str):
+  if not ver_str.startswith('git version '):
+    return None
+
+  num_ver_str = ver_str[len('git version '):].strip().split('-')[0]
+  to_tuple = []
+  for num_str in num_ver_str.split('.')[:3]:
+    if num_str.isdigit():
+      to_tuple.append(int(num_str))
+    else:
+      to_tuple.append(0)
+  return tuple(to_tuple)
+
+
 def _CheckGitVersion():
   cmd = [GIT, '--version']
   try:
@@ -295,12 +309,11 @@
   proc.stdout.close()
   proc.wait()
 
-  if not ver_str.startswith('git version '):
+  ver_act = ParseGitVersion(ver_str)
+  if ver_act is None:
     _print('error: "%s" unsupported' % ver_str, file=sys.stderr)
     raise CloneFailure()
 
-  ver_str = ver_str[len('git version '):].strip()
-  ver_act = tuple(map(int, ver_str.split('.')[0:3]))
   if ver_act < MIN_GIT_VERSION:
     need = '.'.join(map(str, MIN_GIT_VERSION))
     _print('fatal: git %s or later required' % need, file=sys.stderr)