guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: Add a helper procedure to delete data for deleted


From: Christopher Baines
Subject: branch master updated: Add a helper procedure to delete data for deleted branches
Date: Sat, 23 May 2020 16:06:01 -0400

This is an automated email from the git hooks/post-receive script.

cbaines pushed a commit to branch master
in repository data-service.

The following commit(s) were added to refs/heads/master by this push:
     new f114218  Add a helper procedure to delete data for deleted branches
f114218 is described below

commit f11421824dd22d4d5ad49ebc190e654ab62517ff
Author: Christopher Baines <address@hidden>
AuthorDate: Sat May 23 21:05:44 2020 +0100

    Add a helper procedure to delete data for deleted branches
---
 guix-data-service/data-deletion.scm | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/guix-data-service/data-deletion.scm 
b/guix-data-service/data-deletion.scm
index 296e000..5d127c9 100644
--- a/guix-data-service/data-deletion.scm
+++ b/guix-data-service/data-deletion.scm
@@ -20,7 +20,8 @@
   #:use-module (ice-9 match)
   #:use-module (squee)
   #:use-module (guix-data-service database)
-  #:export (delete-data-for-branch))
+  #:export (delete-data-for-branch
+            delete-data-for-all-deleted-branches))
 
 (define (delete-data-for-branch conn git-repository-id branch-name)
   (define commits
@@ -179,6 +180,30 @@ SELECT DISTINCT name
 FROM git_branches
 WHERE git_repository_id = 1 AND name != 'master'"))))))
 
+(define (delete-data-for-all-deleted-branches)
+  (with-postgresql-connection
+   "data-deletion"
+   (lambda (conn)
+     (for-each
+      (match-lambda
+        ((name git-repository-id)
+         (simple-format #t "deleting data for ~A (~A)\n"
+                        name git-repository-id)
+         (delete-data-for-branch conn
+                                 (string->number git-repository-id)
+                                 name)))
+      (exec-query
+       conn
+       "
+SELECT name, git_repository_id
+FROM (
+  SELECT DISTINCT ON (name, git_repository_id)
+    name, git_repository_id, commit
+  FROM git_branches
+  ORDER BY git_repository_id, name, datetime DESC
+) AS git_branches_latest_revision
+WHERE commit = ''")))))
+
 (define (delete-unreferenced-derivations)
   (define (maybe-delete-derivation conn id file-name)
     (match (map



reply via email to

[Prev in Thread] Current Thread [Next in Thread]