summaryrefslogtreecommitdiff
path: root/Annex/WorkTree.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-12-16 14:27:12 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-12-16 14:27:12 -0400
commit232bca99b0630603c7976f872adb05d232eb5ed8 (patch)
tree709c1e806b269acb89866c51b4d1c76bed77e105 /Annex/WorkTree.hs
parent9325c324b567736772a4d52e84c3a11f7c082459 (diff)
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.
Diffstat (limited to 'Annex/WorkTree.hs')
-rw-r--r--Annex/WorkTree.hs7
1 files changed, 6 insertions, 1 deletions
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