use file-io for readFile/writeFile/appendFile on ByteStrings
These are all straightforward, and easy small performance wins. Sponsored-by: Nicholas Golder-Manning
This commit is contained in:
parent
90cd3aad37
commit
9b79f0f43d
19 changed files with 63 additions and 52 deletions
|
@ -15,7 +15,6 @@ import Data.Default
|
|||
import Data.ByteString.Builder
|
||||
import qualified Data.ByteString as S
|
||||
import qualified Data.ByteString.Short as S (toShort, fromShort)
|
||||
import qualified Data.ByteString.Lazy as L
|
||||
import qualified System.FilePath.ByteString as P
|
||||
import System.PosixCompat.Files (isRegularFile)
|
||||
import Text.Read
|
||||
|
@ -35,6 +34,7 @@ import Utility.FileMode
|
|||
import Utility.Tmp
|
||||
import qualified Upgrade.V2
|
||||
import qualified Utility.RawFilePath as R
|
||||
import qualified Utility.FileIO as F
|
||||
|
||||
-- v2 adds hashing of filenames of content and location log files.
|
||||
-- Key information is encoded in filenames differently, so
|
||||
|
@ -198,7 +198,7 @@ fileKey1 file = readKey1 $
|
|||
replace "&a" "&" $ replace "&s" "%" $ replace "%" "/" file
|
||||
|
||||
writeLog1 :: FilePath -> [LogLine] -> IO ()
|
||||
writeLog1 file ls = viaTmp (L.writeFile . fromRawFilePath . fromOsPath)
|
||||
writeLog1 file ls = viaTmp F.writeFile
|
||||
(toOsPath (toRawFilePath file))
|
||||
(toLazyByteString $ buildLog ls)
|
||||
|
||||
|
|
|
@ -34,8 +34,7 @@ import Utility.InodeCache
|
|||
import Utility.DottedVersion
|
||||
import Annex.AdjustedBranch
|
||||
import qualified Utility.RawFilePath as R
|
||||
|
||||
import qualified Data.ByteString as S
|
||||
import qualified Utility.FileIO as F
|
||||
|
||||
upgrade :: Bool -> Annex UpgradeResult
|
||||
upgrade automatic = flip catchNonAsync onexception $ do
|
||||
|
@ -130,7 +129,7 @@ upgradeDirectWorkTree = do
|
|||
Just k -> do
|
||||
stagePointerFile f Nothing =<< hashPointerFile k
|
||||
ifM (isJust <$> getAnnexLinkTarget f)
|
||||
( writepointer (fromRawFilePath f) k
|
||||
( writepointer f k
|
||||
, fromdirect (fromRawFilePath f) k
|
||||
)
|
||||
Database.Keys.addAssociatedFile k
|
||||
|
@ -158,8 +157,8 @@ upgradeDirectWorkTree = do
|
|||
)
|
||||
|
||||
writepointer f k = liftIO $ do
|
||||
removeWhenExistsWith R.removeLink (toRawFilePath f)
|
||||
S.writeFile f (formatPointer k)
|
||||
removeWhenExistsWith R.removeLink f
|
||||
F.writeFile' (toOsPath f) (formatPointer k)
|
||||
|
||||
{- Remove all direct mode bookkeeping files. -}
|
||||
removeDirectCruft :: Annex ()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue