SHAnE backends are now smarter about composite extensions, such as .tar.gz Closes: #680450

This commit is contained in:
Joey Hess 2012-07-05 16:24:02 -06:00
parent 25701717eb
commit 5a753a7b8a
2 changed files with 11 additions and 8 deletions

View file

@ -97,16 +97,17 @@ keyValueE :: SHASize -> KeySource -> Annex (Maybe Key)
keyValueE size source = keyValue size source >>= maybe (return Nothing) addE
where
addE k = return $ Just $ k
{ keyName = keyName k ++ extension
{ keyName = keyName k ++ selectExtension (keyFilename source)
, keyBackendName = shaNameE size
}
naiveextension = takeExtension $ keyFilename source
extension
-- long or newline containing extensions are
-- probably not really an extension
| length naiveextension > 6 ||
'\n' `elem` naiveextension = ""
| otherwise = naiveextension
selectExtension :: FilePath -> String
selectExtension = join "." . reverse . take 2 . takeWhile shortenough .
reverse . split "." . takeExtensions
where
shortenough e
| '\n' `elem` e = False -- newline in extension?!
| otherwise = length e <= 4 -- long enough for "jpeg"
{- A key's checksum is checked during fsck. -}
checkKeyChecksum :: SHASize -> Key -> FilePath -> Annex Bool

2
debian/changelog vendored
View file

@ -9,6 +9,8 @@ git-annex (3.20120630) UNRELEASED; urgency=low
but avoids portability problems.
* Use SHA library for files less than 50 kb in size, at which point it's
faster than forking the more optimised external program.
* SHAnE backends are now smarter about composite extensions, such as
.tar.gz Closes: #680450
-- Joey Hess <joeyh@debian.org> Sun, 01 Jul 2012 15:04:37 -0400