diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-03-14 13:13:56 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-03-14 13:14:01 -0400 |
commit | 589d8a9207aaf72e3562ca8ff7cf339d8dd97fa8 (patch) | |
tree | 489ba242f823a954e1dbfc3221c79b0a76e3bc12 | |
parent | aeee4a4b7093358d4cc664146e61329bfd67956b (diff) |
Correct git-annex info to include unlocked files in v6 repository.
An unlocked present file does not have a pointer file in the worktree, so
info skipped counting it.
It may be that unused was also affected by the problem, but it seemed not
to be in my tests. I think because of the use of the associatedFilesFilter.
This fix slows down both info and unused a little bit, since they have to
query the contents of files from git, but only when handling unlocked files.
-rw-r--r-- | Annex/Link.hs | 4 | ||||
-rw-r--r-- | Command/Unused.hs | 6 | ||||
-rw-r--r-- | debian/changelog | 1 |
3 files changed, 6 insertions, 5 deletions
diff --git a/Annex/Link.hs b/Annex/Link.hs index 40e56f23e..629e77d7f 100644 --- a/Annex/Link.hs +++ b/Annex/Link.hs @@ -159,7 +159,9 @@ formatPointer :: Key -> String formatPointer k = toInternalGitPath (pathSeparator:objectDir </> keyFile k) ++ "\n" -{- Checks if a file is a pointer to a key. -} +{- Checks if a worktree file is a pointer to a key. + - + - Unlocked files whose content is present are not detected by this. -} isPointerFile :: FilePath -> IO (Maybe Key) isPointerFile f = catchDefaultIO Nothing $ do b <- L.take maxPointerSz <$> L.readFile f diff --git a/Command/Unused.hs b/Command/Unused.hs index b6f3e93b6..8040dc21a 100644 --- a/Command/Unused.hs +++ b/Command/Unused.hs @@ -27,6 +27,7 @@ import qualified Remote import qualified Annex.Branch import Annex.Link import Annex.CatFile +import Annex.WorkTree import Types.RefSpec import Git.Types import Git.Sha @@ -215,10 +216,7 @@ withKeysReferenced' mdir initial a = do Just dir -> inRepo $ LsFiles.inRepo [dir] go v [] = return v go v (f:fs) = do - mk <- getM id - [ isAnnexLink f - , liftIO (isPointerFile f) - ] + mk <- lookupFile f case mk of Nothing -> go v fs Just k -> do diff --git a/debian/changelog b/debian/changelog index fc01dbdaf..e2c13be40 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,7 @@ git-annex (6.20160230) UNRELEASED; urgency=medium * Fix OSX dmg to include libraries needed by bundled gpg, lost in last release. * Always try to thaw content, even when annex.crippledfilesystem is set. + * Correct git-annex info to include unlocked files in v6 repository. -- Joey Hess <id@joeyh.name> Mon, 29 Feb 2016 13:00:30 -0400 |