diff --git a/CHANGELOG b/CHANGELOG index 9c5ec5a91b..6f14915886 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,6 +9,8 @@ git-annex (10.20240832) UNRELEASED; urgency=medium * sim: New command, can be used to simulate networks of repositories and see how preferred content and other configuration makes file content flow through it. + * Fix bug that prevented anything being stored in an empty + repository whose preferred content expression uses sizebalanced. -- Joey Hess Tue, 03 Sep 2024 12:38:42 -0400 diff --git a/Limit.hs b/Limit.hs index 4ef4005abe..2c7ce3c22e 100644 --- a/Limit.hs +++ b/Limit.hs @@ -736,8 +736,8 @@ filterCandidatesFullySizeBalanced filterCandidatesFullySizeBalanced maxsizes sizemap n key candidates = do currentlocs <- S.fromList <$> loggedLocations key let keysize = fromMaybe 0 (fromKey keySize key) - let go u = case (M.lookup u maxsizes, M.lookup u sizemap, u `S.member` currentlocs) of - (Just maxsize, Just reposize, inrepo) + let go u = case (M.lookup u maxsizes, fromMaybe (RepoSize 0) (M.lookup u sizemap), u `S.member` currentlocs) of + (Just maxsize, reposize, inrepo) | repoHasSpace keysize inrepo reposize maxsize -> proportionfree keysize inrepo u reposize maxsize | otherwise -> Nothing diff --git a/doc/bugs/sizebalanced_preferred_content_empty_repo_stays_empty.mdwn b/doc/bugs/sizebalanced_preferred_content_empty_repo_stays_empty.mdwn new file mode 100644 index 0000000000..afbdaf8296 --- /dev/null +++ b/doc/bugs/sizebalanced_preferred_content_empty_repo_stays_empty.mdwn @@ -0,0 +1,9 @@ +When using sizebalanced preferred content, a `git-annex copy --auto` to a +repository that is currently empty will not fill it. + +It seems that getLiveRepoSizes returns a map that does not contain the +repo's UUID, and filterCandidatesFullySizeBalanced filters out repos that +are not in the map. +--[[Joey]] + +> [[fixed|done]] --[[Joey]]