summaryrefslogtreecommitdiff
path: root/Annex
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-12-19 12:44:24 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-12-19 12:44:24 -0400
commit67cc72d540d8dd03f433a135297ba86d896ba14d (patch)
tree9730d5abcb9b268448eca937a13df88912e06f8e /Annex
parent20ff17f05aa8f0e553d11e5a3ca714009ce80440 (diff)
normalise associated files
Sometimes ./file will be passed in, and sometimes file; need to treat these the same.
Diffstat (limited to 'Annex')
-rw-r--r--Annex/Content/Direct.hs8
-rw-r--r--Annex/Direct.hs2
2 files changed, 6 insertions, 4 deletions
diff --git a/Annex/Content/Direct.hs b/Annex/Content/Direct.hs
index 5e33a8951..64182ddc6 100644
--- a/Annex/Content/Direct.hs
+++ b/Annex/Content/Direct.hs
@@ -54,16 +54,18 @@ changeAssociatedFiles key transform = do
removeAssociatedFile :: Key -> FilePath -> Annex [FilePath]
removeAssociatedFile key file = do
- fs <- changeAssociatedFiles key $ filter (/= file)
+ fs <- changeAssociatedFiles key $ filter (/= normalise file)
when (null fs) $
logStatus key InfoMissing
return fs
addAssociatedFile :: Key -> FilePath -> Annex [FilePath]
addAssociatedFile key file = changeAssociatedFiles key $ \files ->
- if file `elem` files
+ if file' `elem` files
then files
- else file:files
+ else file':files
+ where
+ file' = normalise file
{- Checks if a file in the tree, associated with a key, has not been modified.
-
diff --git a/Annex/Direct.hs b/Annex/Direct.hs
index 3846b0a9e..6ddea08fb 100644
--- a/Annex/Direct.hs
+++ b/Annex/Direct.hs
@@ -175,7 +175,7 @@ toDirectGen :: Key -> FilePath -> Annex (Maybe (Annex ()))
toDirectGen k f = do
loc <- inRepo $ gitAnnexLocation k
createContentDir loc -- thaws directory too
- locs <- filter (/= f) <$> addAssociatedFile k f
+ locs <- filter (/= normalise f) <$> addAssociatedFile k f
case locs of
[] -> ifM (liftIO $ doesFileExist loc)
( return $ Just $ do