summaryrefslogtreecommitdiffstats
path: root/subcmds/init.py
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2009-06-12 09:32:50 -0700
committerShawn O. Pearce <sop@google.com>2009-06-12 09:32:50 -0700
commit2ec00b92724982708071dc0eed707659468d2bcf (patch)
tree4af657b8164ea30575b99852a60012ea9ad8e24e /subcmds/init.py
parent2a3a81b51f1aee5a2da789d07d14cde61c96e8b7 (diff)
downloadgit-repo-2ec00b92724982708071dc0eed707659468d2bcf.tar.gz
Refactor git version detection for reuse
This way we can use it to detect feature support in the underlying git, such as new options or commands that have been added in more recent versions. Signed-off-by: Shawn O. Pearce <sop@google.com>
Diffstat (limited to 'subcmds/init.py')
-rw-r--r--subcmds/init.py17
1 files changed, 2 insertions, 15 deletions
diff --git a/subcmds/init.py b/subcmds/init.py
index 5ba4d794..fbc406e2 100644
--- a/subcmds/init.py
+++ b/subcmds/init.py
@@ -20,7 +20,7 @@ from color import Coloring
20from command import InteractiveCommand, MirrorSafeCommand 20from command import InteractiveCommand, MirrorSafeCommand
21from error import ManifestParseError 21from error import ManifestParseError
22from project import SyncBuffer 22from project import SyncBuffer
23from git_command import git, MIN_GIT_VERSION 23from git_command import git_require, MIN_GIT_VERSION
24 24
25class Init(InteractiveCommand, MirrorSafeCommand): 25class Init(InteractiveCommand, MirrorSafeCommand):
26 common = True 26 common = True
@@ -85,19 +85,6 @@ to update the working directory files.
85 dest='no_repo_verify', action='store_true', 85 dest='no_repo_verify', action='store_true',
86 help='do not verify repo source code') 86 help='do not verify repo source code')
87 87
88 def _CheckGitVersion(self):
89 ver_str = git.version()
90 if not ver_str.startswith('git version '):
91 print >>sys.stderr, 'error: "%s" unsupported' % ver_str
92 sys.exit(1)
93
94 ver_str = ver_str[len('git version '):].strip()
95 ver_act = tuple(map(lambda x: int(x), ver_str.split('.')[0:3]))
96 if ver_act < MIN_GIT_VERSION:
97 need = '.'.join(map(lambda x: str(x), MIN_GIT_VERSION))
98 print >>sys.stderr, 'fatal: git %s or later required' % need
99 sys.exit(1)
100
101 def _SyncManifest(self, opt): 88 def _SyncManifest(self, opt):
102 m = self.manifest.manifestProject 89 m = self.manifest.manifestProject
103 is_new = not m.Exists 90 is_new = not m.Exists
@@ -214,7 +201,7 @@ to update the working directory files.
214 gc.SetString('color.ui', 'auto') 201 gc.SetString('color.ui', 'auto')
215 202
216 def Execute(self, opt, args): 203 def Execute(self, opt, args):
217 self._CheckGitVersion() 204 git_require(MIN_GIT_VERSION, fail=True)
218 self._SyncManifest(opt) 205 self._SyncManifest(opt)
219 self._LinkManifest(opt.manifest_name) 206 self._LinkManifest(opt.manifest_name)
220 207