From 0cd30e727a1879a6a897499f5d932a9c9e574b92 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Sun, 6 Aug 2017 02:40:50 +0300 Subject: [PATCH] init: check user.{name,email} to make sure git is ready Making sure git is configured at least with name and email, so our commits can be commited without any problems. Fixes #64. Signed-off-by: Ruslan Kuprieiev --- dvc/git_wrapper.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/dvc/git_wrapper.py b/dvc/git_wrapper.py index f466db785..4cc5d5e32 100644 --- a/dvc/git_wrapper.py +++ b/dvc/git_wrapper.py @@ -46,6 +46,15 @@ class GitWrapperI(object): return GitWrapper.parse_porcelain_files(out) + @staticmethod + def git_config_get(name): + code, out, err = Executor.exec_cmd(['git', 'config', '--get', name]) + Logger.debug('[dvc-git] "git config --get {}": code({}), out({}), err({})'.format( + name, code, out, err)) + if code != 0: + return None + return out + @staticmethod def git_path_to_system_path(path): if os.name == 'nt': @@ -86,6 +95,17 @@ class GitWrapper(GitWrapperI): Logger.error("{} {}".format(status, file)) return False + # Sanity check to make sure we will be able to commit + name = self.git_config_get('user.name') + if name == None: + Logger.error('[dvc-git] Please setup user.name in git config') + return False + + email = self.git_config_get('user.email') + if email == None: + Logger.error('[dvc-git] Please setup user.email in git config') + return False + return True @property