From 85e0031292bacc6f85999f9d2a870bfd9c9a155a Mon Sep 17 00:00:00 2001 From: Kurt Kremitzki Date: Wed, 5 Jul 2017 00:07:46 -0500 Subject: [PATCH] AddonMgr: Check and repair addon .git folders --- src/Mod/AddonManager/AddonManager.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Mod/AddonManager/AddonManager.py b/src/Mod/AddonManager/AddonManager.py index 8f17ae7bdf..5749791474 100644 --- a/src/Mod/AddonManager/AddonManager.py +++ b/src/Mod/AddonManager/AddonManager.py @@ -447,6 +447,13 @@ class CheckWBWorker(QtCore.QThread): self.info_label.emit(translate("AddonsInstaller","Checking repo")+" "+repo[0]+"...") clonedir = moddir + os.sep + repo[0] if os.path.exists(clonedir): + if not os.path.exists(clonedir + os.sep + '.git'): + # Repair addon installed with raw download + bare_repo = git.Repo.clone_from(repo[1], clonedir + os.sep + '.git', bare=True) + with bare_repo.config_writer() as cw: + cw.set('core', 'bare', False) + repo = git.Repo(clonedir) + repo.head.reset() gitrepo = git.Git(clonedir) gitrepo.fetch() if "git pull" in gitrepo.status(): @@ -654,6 +661,13 @@ class InstallWorker(QtCore.QThread): if os.path.exists(clonedir): self.info_label.emit("Updating module...") if git: + if not os.path.exists(clonedir + os.sep + '.git'): + # Repair addon installed with raw download + bare_repo = git.Repo.clone_from(self.repos[self.idx][1], clonedir + os.sep + '.git', bare=True) + with bare_repo.config_writer() as cw: + cw.set('core', 'bare', False) + repo = git.Repo(clonedir) + repo.head.reset() repo = git.Git(clonedir) answer = repo.pull() else: