From 3d9d12a4d69e7ddacc6b5ba5909d51c9e9067c40 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 12 Apr 2020 13:42:49 -0600 Subject: [PATCH] raco pkg catalog-archive: avoid writing non-changed information --- .../collects/pkg/private/catalog-archive.rkt | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/racket/collects/pkg/private/catalog-archive.rkt b/racket/collects/pkg/private/catalog-archive.rkt index 076d617fdf..24ab20cc1c 100644 --- a/racket/collects/pkg/private/catalog-archive.rkt +++ b/racket/collects/pkg/private/catalog-archive.rkt @@ -121,29 +121,31 @@ (when clean? (delete-directory/files staged-dir)) (values staged-checksum)])) ;; Record packed result: + (define new-checksum (file->string pkg-checksum-file)) + (parameterize ([db:current-pkg-catalog-file temp-catalog-file]) + (db:call-with-pkgs-transaction + (lambda () + (define modules (db:get-pkg-modules name (db:pkg-catalog pkg) (db:pkg-checksum pkg))) + (define dependencies (db:get-pkg-dependencies name (db:pkg-catalog pkg) (db:pkg-checksum pkg))) + (db:set-pkg! name (db:pkg-catalog pkg) + (db:pkg-author pkg) + (path->string (path->complete-path pkg-file)) + new-checksum + (db:pkg-desc pkg)) + (db:set-pkg-modules! name (db:pkg-catalog pkg) + new-checksum + modules) + (db:set-pkg-dependencies! name (db:pkg-catalog pkg) + new-checksum + dependencies)))) + ;; Record packed result in state catalog: (when state-catalog (parameterize ([db:current-pkg-catalog-file state-catalog]) (db:set-pkg! name "local" (db:pkg-author pkg) (db:pkg-source pkg) staged-checksum - (db:pkg-desc pkg))))) - ;; Record packed result: - (define new-checksum (file->string pkg-checksum-file)) - (parameterize ([db:current-pkg-catalog-file temp-catalog-file]) - (define modules (db:get-pkg-modules name (db:pkg-catalog pkg) (db:pkg-checksum pkg))) - (define dependencies (db:get-pkg-dependencies name (db:pkg-catalog pkg) (db:pkg-checksum pkg))) - (db:set-pkg! name (db:pkg-catalog pkg) - (db:pkg-author pkg) - (path->string (path->complete-path pkg-file)) - new-checksum - (db:pkg-desc pkg)) - (db:set-pkg-modules! name (db:pkg-catalog pkg) - new-checksum - modules) - (db:set-pkg-dependencies! name (db:pkg-catalog pkg) - new-checksum - dependencies)))) + (db:pkg-desc pkg))))))) (define dest-catalog (build-path dest-dir "catalog")) (unless quiet? (printf/flush "Creating catalog ~a\n" dest-catalog))