more OsPath conversion

keyFile has a nice improvement; since a Key is a ShortByteString, it can
be converted to an OsPath without needing the copy that was done before.

Unfortunately, fileKey has to convert from a ShortByteString to a
ByteString in order to use attoparsec, and then the results get
converted back to an OsPath, so there are now 2 copies.
Maybe attoparsec will eventually get a ShortByteString API,
see https://github.com/haskell/attoparsec/issues/225

Sponsored-by: Joshua Antonishen
This commit is contained in:
Joey Hess 2025-01-27 16:55:07 -04:00
parent 98a0a9ddff
commit 7ebef6cd1b
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
5 changed files with 249 additions and 215 deletions

View file

@ -29,14 +29,14 @@ data BranchState = BranchState
, unhandledTransitions :: [TransitionCalculator]
-- ^ when the branch was not able to be updated due to permissions,
-- this is transitions that need to be applied when making queries.
, cachedFileContents :: [(RawFilePath, L.ByteString)]
, cachedFileContents :: [(OsPath, L.ByteString)]
-- ^ contents of a few files recently read from the branch
, needInteractiveAccess :: Bool
-- ^ do new changes written to the journal or branch by another
-- process need to be noticed while the current process is running?
-- (This makes the journal always be read, and avoids using the
-- cache.)
, alternateJournal :: Maybe RawFilePath
, alternateJournal :: Maybe OsPath
-- ^ use this directory for all journals, rather than the
-- gitAnnexJournalDir and gitAnnexPrivateJournalDir.
}