From 96404170673e4ff42b68de1ba967a09a88dd550e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 27 Jan 2011 16:10:45 -0400 Subject: [PATCH] avoid warning when symlink in the repo contains a colon but is not a pointer to annexed content --- Backend.hs | 3 ++- Locations.hs | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Backend.hs b/Backend.hs index bdceea2f5b..74f71f8bea 100644 --- a/Backend.hs +++ b/Backend.hs @@ -137,7 +137,8 @@ lookupFile file = do makekey bs l = do case maybeLookupBackendName bs bname of Nothing -> do - unless (null kname || null bname) $ + unless (null kname || null bname || + not (isLinkToAnnex l)) $ warning skip return Nothing Just backend -> return $ Just (k, backend) diff --git a/Locations.hs b/Locations.hs index 6c541e937c..327c099e38 100644 --- a/Locations.hs +++ b/Locations.hs @@ -15,6 +15,7 @@ module Locations ( annexTmpLocation, annexBadLocation, annexUnusedLog, + isLinkToAnnex, annexDir, annexObjectDir, @@ -22,6 +23,7 @@ module Locations ( ) where import Data.String.Utils +import Data.List import Types import qualified GitRepo as Git @@ -69,6 +71,10 @@ annexBadLocation r = annexDir r ++ "/bad/" annexUnusedLog :: Git.Repo -> FilePath annexUnusedLog r = annexDir r ++ "/unused" +{- Checks a symlink target to see if it appears to point to annexed content. -} +isLinkToAnnex :: FilePath -> Bool +isLinkToAnnex s = isInfixOf "/.git/annex/objects/" s + {- Converts a key into a filename fragment. - - Escape "/" in the key name, to keep a flat tree of files and avoid