summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-10-17 00:10:04 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-10-17 00:10:04 -0400
commitc57b1a697c5de4e20ef10c2c4a39a77c20fde85b (patch)
treed0e61e7bcc8df164df5b074c227a4add1ec81577
parentaaee8e231f111b9b4a2ead95eaaeb3d635cc1699 (diff)
add visible size and time to worm keys
-rw-r--r--Backend/WORM.hs12
1 files changed, 8 insertions, 4 deletions
diff --git a/Backend/WORM.hs b/Backend/WORM.hs
index 420f336e9..7e86d4d24 100644
--- a/Backend/WORM.hs
+++ b/Backend/WORM.hs
@@ -23,7 +23,10 @@ backend = Backend.File.backend {
-- allows multiple files with the same names to have different keys,
-- while also allowing a file to be moved around while retaining the
-- same key.
---
+--
+-- The file size and modification time are also included in the key,
+-- unhashed. This could be used as a sanity check.
+--
-- The basename of the filename is also included in the key, so it's clear
-- what the original filename was when a user sees the value.
keyValue :: FilePath -> Annex (Maybe Key)
@@ -31,9 +34,10 @@ keyValue file = do
stat <- liftIO $ getFileStatus file
return $ Just $ Key ((name backend), key stat)
where
- key stat = (checksum $ uniqueid stat) ++ sep ++ base
+ key stat = (checksum $ uniqueid stat) ++ sep ++
+ uniqueid stat ++ sep ++ base
checksum s = show $ sha1 $ B.pack s
- uniqueid stat = (show $ fileSize stat) ++ sep ++
- (show $ modificationTime stat)
+ uniqueid stat = (show $ modificationTime stat) ++ sep ++
+ (show $ fileSize stat)
base = takeFileName file
sep = ":"