|
21 | 21 | from typing import Dict, Optional, TypedDict, Union
|
22 | 22 | from urllib import parse as urlparse
|
23 | 23 |
|
| 24 | +from libvcs.cmd.git import Git |
| 25 | + |
24 | 26 | from .. import exc
|
25 | 27 | from .base import BaseProject, VCSLocation, convert_pip_url as base_convert_pip_url
|
26 | 28 |
|
@@ -300,24 +302,26 @@ def set_remotes(self, overwrite: bool = False):
|
300 | 302 |
|
301 | 303 | def obtain(self, *args, **kwargs):
|
302 | 304 | """Retrieve the repository, clone if doesn't exist."""
|
303 |
| - self.ensure_dir() |
304 |
| - |
305 |
| - url = self.url |
| 305 | + clone_kwargs = {} |
306 | 306 |
|
307 |
| - cmd = ["clone", "--progress"] |
308 | 307 | if self.git_shallow:
|
309 |
| - cmd.extend(["--depth", "1"]) |
| 308 | + clone_kwargs["depth"] = 1 |
310 | 309 | if self.tls_verify:
|
311 |
| - cmd.extend(["-c", "http.sslVerify=false"]) |
312 |
| - cmd.extend([url, self.dir]) |
| 310 | + clone_kwargs["c"] = "http.sslVerify=false" |
313 | 311 |
|
314 | 312 | self.log.info("Cloning.")
|
315 |
| - self.run(cmd, log_in_real_time=True) |
| 313 | + |
| 314 | + git = Git(dir=self.dir) |
| 315 | + |
| 316 | + # Needs to log to std out, e.g. log_in_real_time |
| 317 | + git.clone(url=self.url, progress=True, make_parents=True, **clone_kwargs) |
316 | 318 |
|
317 | 319 | self.log.info("Initializing submodules.")
|
| 320 | + |
318 | 321 | self.run(["submodule", "init"], log_in_real_time=True)
|
319 |
| - cmd = ["submodule", "update", "--recursive", "--init"] |
320 |
| - self.run(cmd, log_in_real_time=True) |
| 322 | + self.run( |
| 323 | + ["submodule", "update", "--recursive", "--init"], log_in_real_time=True |
| 324 | + ) |
321 | 325 |
|
322 | 326 | self.set_remotes(overwrite=True)
|
323 | 327 |
|
|
0 commit comments