1105 except OSError, e: |
1105 except OSError, e: |
1106 if e.errno != 2 or os.name != 'nt': |
1106 if e.errno != 2 or os.name != 'nt': |
1107 raise |
1107 raise |
1108 self._gitexecutable = 'git.cmd' |
1108 self._gitexecutable = 'git.cmd' |
1109 out, err = self._gitnodir(['--version']) |
1109 out, err = self._gitnodir(['--version']) |
1110 m = re.search(r'^git version (\d+)\.(\d+)\.(\d+)', out) |
1110 m = re.search(r'^git version (\d+)\.(\d+)', out) |
1111 if not m: |
1111 if not m: |
1112 self._ui.warn(_('cannot retrieve git version')) |
1112 self._ui.warn(_('cannot retrieve git version\n')) |
1113 return |
1113 return |
1114 version = (int(m.group(1)), m.group(2), m.group(3)) |
1114 version = (int(m.group(1)), int(m.group(2))) |
1115 # git 1.4.0 can't work at all, but 1.5.X can in at least some cases, |
1115 # git 1.4.0 can't work at all, but 1.5.X can in at least some cases, |
1116 # despite the docstring comment. For now, error on 1.4.0, warn on |
1116 # despite the docstring comment. For now, error on 1.4.0, warn on |
1117 # 1.5.0 but attempt to continue. |
1117 # 1.5.0 but attempt to continue. |
1118 if version < (1, 5, 0): |
1118 if version < (1, 5): |
1119 raise util.Abort(_('git subrepo requires at least 1.6.0 or later')) |
1119 raise util.Abort(_('git subrepo requires at least 1.6.0 or later')) |
1120 elif version < (1, 6, 0): |
1120 elif version < (1, 6): |
1121 self._ui.warn(_('git subrepo requires at least 1.6.0 or later')) |
1121 self._ui.warn(_('git subrepo requires at least 1.6.0 or later\n')) |
1122 |
1122 |
1123 def _gitcommand(self, commands, env=None, stream=False): |
1123 def _gitcommand(self, commands, env=None, stream=False): |
1124 return self._gitdir(commands, env=env, stream=stream)[0] |
1124 return self._gitdir(commands, env=env, stream=stream)[0] |
1125 |
1125 |
1126 def _gitdir(self, commands, env=None, stream=False): |
1126 def _gitdir(self, commands, env=None, stream=False): |