From cc564af44e1fc7b03fa4d2c8d6b00a07aad7b539 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 31 Aug 2019 22:09:19 +0100 Subject: [PATCH] Fix broken reference based git import Fixes #130 --- app/tasks/importtasks.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/tasks/importtasks.py b/app/tasks/importtasks.py index 108f1b3..a5328ad 100644 --- a/app/tasks/importtasks.py +++ b/app/tasks/importtasks.py @@ -299,15 +299,17 @@ def cloneRepo(urlstr, ref=None, recursive=False): gitUrl = generateGitURL(urlstr) print("Cloning from " + gitUrl) repo = git.Repo.clone_from(gitUrl, gitDir, \ - progress=None, env=None, depth=1, recursive=recursive, kill_after_timeout=15) + progress=None, env=None, depth=1, recursive=recursive, kill_after_timeout=15, b=ref) - if ref is not None: - repo.create_head("myhead", ref).checkout() return gitDir, repo + except GitCommandError as e: # This is needed to stop the backtrace being weird err = e.stderr + except gitdb.exc.BadName as e: + err = "Unable to find the reference " + (ref or "?") + "\n" + e.stderr + raise TaskError(err.replace("stderr: ", "") \ .replace("Cloning into '" + gitDir + "'...", "") \ .strip())