From 5c008cfcb583fbfb81116bda036198560ea8fb56 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Sat, 6 Apr 2019 22:53:44 +0300 Subject: [PATCH] pkg: import git dynamically This allows dvc to work even if there is no git present, as long as user is not using `dvc pkg` command directly. Fixes #1835 Signed-off-by: Ruslan Kuprieiev --- dvc/repo/pkg.py | 3 ++- dvc/temp_git_repo.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dvc/repo/pkg.py b/dvc/repo/pkg.py index 9b2ffd9e0..87d8d9f2b 100644 --- a/dvc/repo/pkg.py +++ b/dvc/repo/pkg.py @@ -2,7 +2,6 @@ from __future__ import unicode_literals import os import shutil -from git.cmd import Git import dvc.logger as logger from dvc.exceptions import DvcException @@ -60,6 +59,8 @@ class GitPackage(Package): DEF_DVC_FILE_PREFIX = "mod_" def install_or_update(self, parent_repo, pkg_params): + from git.cmd import Git + if not self.is_in_root(): raise DvcException( "This command can be run only from a repository root" diff --git a/dvc/temp_git_repo.py b/dvc/temp_git_repo.py index 6f2c90875..7faf30868 100644 --- a/dvc/temp_git_repo.py +++ b/dvc/temp_git_repo.py @@ -2,8 +2,6 @@ import os import shutil import tempfile -import git - from dvc import logger from dvc.exceptions import DvcException @@ -70,6 +68,8 @@ class TempGitRepo(object): return self def _clone_to_temp_dir(self): + import git + result = tempfile.mktemp( prefix=self._tmp_mod_prefix, dir=self.modules_dir )