fix reversion in v5 git-annex add of unlocked file

In v5, lookupFile is supposed to only look at symlinks on disk (except when
in direct mode).

Note that v6 also has a bug when a locked file's symlink is deleted and is
replaced with a new file. It sees that a link is staged and gets that
key.
This commit is contained in:
Joey Hess 2015-12-16 14:27:12 -04:00
parent 38a23928e9
commit 35f6a78b66
Failed to extract signature

View file

@ -10,6 +10,8 @@ module Annex.WorkTree where
import Common.Annex
import Annex.Link
import Annex.CatFile
import Annex.Version
import Config
{- Looks up the key corresponding to an annexed file,
- by examining what the file links to.
@ -22,7 +24,10 @@ lookupFile file = do
mkey <- isAnnexLink file
case mkey of
Just key -> makeret key
Nothing -> maybe (return Nothing) makeret =<< catKeyFile file
Nothing -> ifM (versionSupportsUnlockedPointers <||> isDirect)
( maybe (return Nothing) makeret =<< catKeyFile file
, return Nothing
)
where
makeret = return . Just