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:
parent
98a0a9ddff
commit
7ebef6cd1b
5 changed files with 249 additions and 215 deletions
|
@ -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.
|
||||
}
|
||||
|
|
|
@ -138,7 +138,7 @@ data GitConfig = GitConfig
|
|||
, annexVerify :: Bool
|
||||
, annexPidLock :: Bool
|
||||
, annexPidLockTimeout :: Seconds
|
||||
, annexDbDir :: Maybe RawFilePath
|
||||
, annexDbDir :: Maybe OsPath
|
||||
, annexAddUnlocked :: GlobalConfigurable (Maybe String)
|
||||
, annexSecureHashesOnly :: Bool
|
||||
, annexRetry :: Maybe Integer
|
||||
|
@ -244,7 +244,7 @@ extractGitConfig configsource r = GitConfig
|
|||
, annexPidLock = getbool (annexConfig "pidlock") False
|
||||
, annexPidLockTimeout = Seconds $ fromMaybe 300 $
|
||||
getmayberead (annexConfig "pidlocktimeout")
|
||||
, annexDbDir = (\d -> toRawFilePath d P.</> fromUUID hereuuid)
|
||||
, annexDbDir = (\d -> toOsPath (toRawFilePath d P.</> fromUUID hereuuid))
|
||||
<$> getmaybe (annexConfig "dbdir")
|
||||
, annexAddUnlocked = configurable Nothing $
|
||||
fmap Just $ getmaybe (annexConfig "addunlocked")
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
module Types.UUID where
|
||||
|
||||
import qualified Data.ByteString as B
|
||||
import qualified Data.ByteString.Short as SB
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Map as M
|
||||
import qualified Data.UUID as U
|
||||
|
@ -54,6 +55,15 @@ instance ToUUID B.ByteString where
|
|||
| B.null b = NoUUID
|
||||
| otherwise = UUID b
|
||||
|
||||
instance FromUUID SB.ShortByteString where
|
||||
fromUUID (UUID u) = SB.toShort u
|
||||
fromUUID NoUUID = SB.empty
|
||||
|
||||
instance ToUUID SB.ShortByteString where
|
||||
toUUID b
|
||||
| SB.null b = NoUUID
|
||||
| otherwise = UUID (SB.fromShort b)
|
||||
|
||||
instance FromUUID String where
|
||||
fromUUID s = decodeBS (fromUUID s)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue