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)
