From 18af58234366eb1b2fdf28b1563c8c3e781a3057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Schw=C3=B6rer?= Date: Mon, 17 Oct 2022 12:15:28 +0200 Subject: [PATCH] Fix egg:deleteDanglingCommitdata() --- www/extern/egg/EGGDatabase.php | 14 +++++++++++--- www/extern/egg/RemoteSource.php | 2 -- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/www/extern/egg/EGGDatabase.php b/www/extern/egg/EGGDatabase.php index a30ea02..b79478d 100644 --- a/www/extern/egg/EGGDatabase.php +++ b/www/extern/egg/EGGDatabase.php @@ -355,11 +355,19 @@ class EGGDatabase public function deleteDanglingCommitdata(string $name) { - $db = $this->sql_query_assoc_prep("SELECT metadata.hash FROM metadata LEFT JOIN commits WHERE commits.hash IS NULL", []); + $hashes = $this->sql_query_assoc_prep("SELECT metadata.hash FROM metadata LEFT JOIN commits ON metadata.hash = commits.hash WHERE commits.hash IS NULL", []); - if (count($db) === 0) return; + if (count($hashes) === 0) return; - $this->logger->proclog("Delete ".count($db)." dangling commits [" . $name . "] from database (no longer linked)"); + $this->logger->proclog("Deleting ".count($hashes)." dangling commits [" . $name . "] from database (no longer linked)"); + + $this->beginTransaction(); + foreach ($hashes as $hash) { + $this->sql_query_assoc_prep("DELETE FROM metadata WHERE hash = :hash", [ [":hash", $hash, PDO::PARAM_STR] ]); + } + $this->commitTransaction(); + + $this->logger->proclog("Succesfully deleted ".count($hashes)." dangling commits"); } /** diff --git a/www/extern/egg/RemoteSource.php b/www/extern/egg/RemoteSource.php index 86f0ef6..d1be8b7 100644 --- a/www/extern/egg/RemoteSource.php +++ b/www/extern/egg/RemoteSource.php @@ -466,7 +466,6 @@ class GithubConnection extends StandardGitConnection protected function queryCommits($reponame, $branchname, $startsha) { $url = Utils::sharpFormat(self::API_COMMITSLIST, [ 'repo'=>$reponame, 'sha'=>$startsha ]); - $this->logger->proclog("Query commits from: [" . $this->name . "|" . $reponame . "|" . $branchname . "] continuing at {" . substr($startsha, 0, 8) . "}"); return Utils::getJSONWithTokenAuth($this->logger, $url, $this->apitoken); } @@ -581,7 +580,6 @@ class GiteaConnection extends StandardGitConnection protected function queryCommits($reponame, $branchname, $startsha) { $url = Utils::sharpFormat(Utils::urlCombine($this->url, self::API_BASE_URL, self::API_COMMIT_LIST), [ 'repo'=>$reponame, 'sha'=>$startsha, 'limit'=>1024 ]); - $this->logger->proclog("Query commits from: [" . $this->name . "|" . $reponame . "|" . $branchname . "] continuing at {" . substr($startsha, 0, 8) . "}"); return Utils::getJSONWithTokenBasicAuth($this->logger, $url, $this->username, $this->password); }