Fix bug that prevented enumerating locally present objects in repos tuned with annex.tune.objecthash1=true
Need to walk 1 level of subdirs less in this case. The git-annex branch traversal code didn't have a similar bug.
This commit is contained in:
parent
c558b39686
commit
0a998032ed
3 changed files with 14 additions and 2 deletions
|
@ -521,11 +521,12 @@ getKeysPresent keyloc = do
|
||||||
direct <- isDirect
|
direct <- isDirect
|
||||||
dir <- fromRepo gitAnnexObjectDir
|
dir <- fromRepo gitAnnexObjectDir
|
||||||
s <- getstate direct
|
s <- getstate direct
|
||||||
liftIO $ walk s direct (2 :: Int) dir
|
depth <- gitAnnexLocationDepth <$> Annex.getGitConfig
|
||||||
|
liftIO $ walk s direct depth dir
|
||||||
where
|
where
|
||||||
walk s direct depth dir = do
|
walk s direct depth dir = do
|
||||||
contents <- catchDefaultIO [] (dirContents dir)
|
contents <- catchDefaultIO [] (dirContents dir)
|
||||||
if depth == 0
|
if depth < 2
|
||||||
then do
|
then do
|
||||||
contents' <- filterM (present s direct) contents
|
contents' <- filterM (present s direct) contents
|
||||||
let keys = mapMaybe (fileKey . takeFileName) contents'
|
let keys = mapMaybe (fileKey . takeFileName) contents'
|
||||||
|
|
|
@ -13,6 +13,7 @@ module Locations (
|
||||||
annexDir,
|
annexDir,
|
||||||
objectDir,
|
objectDir,
|
||||||
gitAnnexLocation,
|
gitAnnexLocation,
|
||||||
|
gitAnnexLocationDepth,
|
||||||
gitAnnexLink,
|
gitAnnexLink,
|
||||||
gitAnnexContentLock,
|
gitAnnexContentLock,
|
||||||
gitAnnexMapping,
|
gitAnnexMapping,
|
||||||
|
@ -115,6 +116,13 @@ annexLocations config key = map (annexLocation config key) dirHashes
|
||||||
annexLocation :: GitConfig -> Key -> (HashLevels -> Hasher) -> FilePath
|
annexLocation :: GitConfig -> Key -> (HashLevels -> Hasher) -> FilePath
|
||||||
annexLocation config key hasher = objectDir </> keyPath key (hasher $ objectHashLevels config)
|
annexLocation config key hasher = objectDir </> keyPath key (hasher $ objectHashLevels config)
|
||||||
|
|
||||||
|
{- Number of subdirectories from the gitAnnexObjectDir
|
||||||
|
- to the gitAnnexLocation. -}
|
||||||
|
gitAnnexLocationDepth :: GitConfig -> Int
|
||||||
|
gitAnnexLocationDepth config = hashlevels + 1
|
||||||
|
where
|
||||||
|
HashLevels hashlevels = objectHashLevels config
|
||||||
|
|
||||||
{- Annexed object's location in a repository.
|
{- Annexed object's location in a repository.
|
||||||
-
|
-
|
||||||
- When there are multiple possible locations, returns the one where the
|
- When there are multiple possible locations, returns the one where the
|
||||||
|
|
3
debian/changelog
vendored
3
debian/changelog
vendored
|
@ -25,6 +25,9 @@ git-annex (5.20150529) UNRELEASED; urgency=medium
|
||||||
to avoid old versions of tahoe create-client choking.
|
to avoid old versions of tahoe create-client choking.
|
||||||
* Build documentation with deterministic=1 for reproducible builds.
|
* Build documentation with deterministic=1 for reproducible builds.
|
||||||
(A new ikiwiki feature.) Closes: #785736
|
(A new ikiwiki feature.) Closes: #785736
|
||||||
|
* Fix bug that prevented enumerating locally present objects in repos
|
||||||
|
tuned with annex.tune.objecthash1=true.
|
||||||
|
Fixes: unused, object count in info, unannex.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Sat, 30 May 2015 02:07:18 -0400
|
-- Joey Hess <id@joeyh.name> Sat, 30 May 2015 02:07:18 -0400
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue