From 232bca99b0630603c7976f872adb05d232eb5ed8 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 16 Dec 2015 14:27:12 -0400 Subject: 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. --- Annex/WorkTree.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'Annex/WorkTree.hs') diff --git a/Annex/WorkTree.hs b/Annex/WorkTree.hs index 26144e7f9..c824e7fc5 100644 --- a/Annex/WorkTree.hs +++ b/Annex/WorkTree.hs @@ -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 -- cgit v1.2.3