fsck: Avoid complaining about required content of dead repositories
authorJoey Hess <joeyh@joeyh.name>
Wed, 26 Mar 2025 14:30:33 +0000 (10:30 -0400)
committerJoey Hess <joeyh@joeyh.name>
Wed, 26 Mar 2025 14:30:33 +0000 (10:30 -0400)
requiredContentMap does not exclude dead repos. Usually this is not a
problem because it is used when we are operating on a repository, and in
that case, the repository is not dead (or if it is, the required content
configurations should still be used). But in the case of fsck, this made a
old required content config for a dead repository be warned about in a
situation where it is not a problem.

CHANGELOG
Command/Fsck.hs
doc/bugs/fsck_complains_about_requires_of_dead_repos.mdwn

index eea3df362a1462358d47588957cc80be3ad03a67..137ba0d99a78d7cc4cef69874a72f4ea4fb250ea 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,6 +4,7 @@ git-annex (10.20250321) UNRELEASED; urgency=medium
     configured as annex-cluster-node, warn and avoid writing bad data to
     the git-annex branch.
   * Fix build without the assistant.
+  * fsck: Avoid complaining about required content of dead repositories.
 
  -- Joey Hess <id@joeyh.name>  Fri, 21 Mar 2025 12:27:11 -0400
 
index a6b6e5487578999d5371d3e15deb1e4f29183c12..50c21149b3757c86369cbf8cc594bf675c0f56a2 100644 (file)
@@ -375,11 +375,13 @@ verifyRequiredContent key ai@(ActionItemAssociatedFile afile _) = case afile of
        -- Can't be checked if there's no associated file.
        AssociatedFile Nothing -> return True
        AssociatedFile (Just _) -> do
-               requiredlocs <- S.fromList . M.keys <$> requiredContentMap
-               if S.null requiredlocs
+               requiredlocs <- filterM notdead =<< (M.keys <$> requiredContentMap)
+               if null requiredlocs
                        then return True
-                       else go requiredlocs
+                       else go (S.fromList requiredlocs)
   where
+       notdead u = (/=) DeadTrusted <$> lookupTrust u
+
        go requiredlocs = do
                presentlocs <- S.fromList <$> loggedLocations key
                missinglocs <- filterM
index c73a886d465b1eca2bd8e03eed1d827e3573a742..62578ad8e9acd137b075373e240be476eb255f88 100644 (file)
@@ -37,3 +37,5 @@ local repository version: 10
 ### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
 
 Best invention since sliced bread.
+
+> Good catch! [[fixed|done]] --[[Joey]]