display new empty repos in maxsize table

A new repo that has no location log info yet, but has an entry in
uuid.log has 0 size, so make RepoSize aware of that.

Note that a new repo that does not yet appear in uuid.log will still not
be displayed.

When a remote is added but not synced with yet, it has no uuid.log
entry. If git-annex maxsize is used to configure that remote, it needs
to appear in the maxsize table, and the change to Command.MaxSize takes
care of that.
This commit is contained in:
Joey Hess 2024-08-22 07:03:22 -04:00
parent a643699b7b
commit 3fe67744b1
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
3 changed files with 23 additions and 23 deletions

View file

@ -126,7 +126,9 @@ diffBranchRepoSizes quiet oldsizemap oldbranchsha newbranchsha = do
newsizemap <- readpairs 100000 reader oldsizemap Nothing
liftIO $ wait feedtid
ifM (liftIO cleanup)
( return (newsizemap, newbranchsha)
( do
newsizemap' <- addemptyrepos newsizemap
return (newsizemap', newbranchsha)
, return (oldsizemap, oldbranchsha)
)
where
@ -156,3 +158,10 @@ diffBranchRepoSizes quiet oldsizemap oldbranchsha newbranchsha = do
readpairs n' reader sizemap' Nothing
Nothing -> return sizemap
parselog = maybe mempty (S.fromList . parseLoggedLocationsWithoutClusters)
addemptyrepos newsizemap = do
knownuuids <- M.keys <$> uuidDescMap
return $ foldl'
(\m u -> M.insertWith (flip const) u (RepoSize 0) m)
newsizemap
knownuuids