]> git.ipfire.org Git - pakfire.git/commitdiff
repo: Drop all content before loading from database
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 24 Mar 2021 11:38:16 +0000 (11:38 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 24 Mar 2021 11:38:16 +0000 (11:38 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/db.c
src/libpakfire/include/pakfire/repo.h
src/libpakfire/repo.c

index a163c4c8f57b6660e697fa4a31e9d7f15dc1ddbb..0b27c6b2f7407952d61e91d149fff08fdbe767f5 100644 (file)
@@ -1571,6 +1571,9 @@ int pakfire_db_load(struct pakfire_db* db, PakfireRepo repo) {
 
        DEBUG(db->pakfire, "Loading package database...\n");
 
+       // Drop contents of the repository
+       pakfire_repo_clear(repo);
+
        // Save starting time
        clock_t t_start = clock();
        clock_t t_end;
index 0297b1ec219cce9823410e3c50b014c93ce28d7f..8e511b7bbec0197d2ea47b6bb676e51fc3ab8eeb 100644 (file)
@@ -33,6 +33,8 @@ PakfireRepo pakfire_repo_ref(PakfireRepo repo);
 PakfireRepo pakfire_repo_unref(PakfireRepo repo);
 Pakfire pakfire_repo_get_pakfire(PakfireRepo repo);
 
+int pakfire_repo_clear(PakfireRepo repo);
+
 int pakfire_repo_identical(PakfireRepo repo1, PakfireRepo repo2);
 int pakfire_repo_cmp(PakfireRepo repo1, PakfireRepo repo2);
 int pakfire_repo_count(PakfireRepo repo);
index 7fbc47ec68141652ebbee3ed40a87e026d298bc2..7bb4dd3c95b4a84eeecc3a19d23fda95b02e5f65 100644 (file)
@@ -80,20 +80,6 @@ Id pakfire_repo_add_solvable(PakfireRepo repo) {
        return repo_add_solvable(repo->repo);
 }
 
-static int pakfire_repo_clear(PakfireRepo repo) {
-       repo_empty(repo->repo, 0);
-
-       // Allocate repodata
-       repo->appdata->repodata = repo_add_repodata(repo->repo,
-               REPO_EXTEND_SOLVABLES|REPO_LOCALPOOL|REPO_NO_INTERNALIZE|REPO_NO_LOCATION);
-       if (!repo->appdata->repodata) {
-               ERROR(repo->pakfire, "Could not allocate repodata\n");
-               return 1;
-       }
-
-       return 0;
-}
-
 static struct pakfire_downloader* pakfire_repo_downloader(PakfireRepo repo) {
        if (!repo->downloader) {
                int r = pakfire_downloader_create(&repo->downloader, repo->pakfire);
@@ -437,6 +423,20 @@ PAKFIRE_EXPORT Pakfire pakfire_repo_get_pakfire(PakfireRepo repo) {
        return pakfire_ref(repo->pakfire);
 }
 
+int pakfire_repo_clear(PakfireRepo repo) {
+       repo_empty(repo->repo, 0);
+
+       // Allocate repodata
+       repo->appdata->repodata = repo_add_repodata(repo->repo,
+               REPO_EXTEND_SOLVABLES|REPO_LOCALPOOL|REPO_NO_INTERNALIZE|REPO_NO_LOCATION);
+       if (!repo->appdata->repodata) {
+               ERROR(repo->pakfire, "Could not allocate repodata\n");
+               return 1;
+       }
+
+       return 0;
+}
+
 Repo* pakfire_repo_get_repo(PakfireRepo repo) {
        return repo->repo;
 }