summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-01-27 16:10:45 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-01-27 16:10:45 -0400
commit96404170673e4ff42b68de1ba967a09a88dd550e (patch)
tree0f9b21755a8b254cf5dca5bd2a2935beba0b6710
parent56a8a2117161b7ce10272777182ef20bf4c5b3ce (diff)
avoid warning when symlink in the repo contains a colon but is not a
pointer to annexed content
-rw-r--r--Backend.hs3
-rw-r--r--Locations.hs6
2 files changed, 8 insertions, 1 deletions
diff --git a/Backend.hs b/Backend.hs
index bdceea2f5..74f71f8be 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 6c541e937..327c099e3 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