per-remote metadata storage
Actually very straightforward reuse of the metadata log file code. Although I had to add a todo item as git-annex forget won't clean up dead remote's metadata yet. This would be worth adding to the external special remote interface sometime. Have not opened a todo though, guess I'll wait until something needs it. This commit was supported by the NSF-funded DataLad project.
This commit is contained in:
parent
9d78a4387f
commit
5c99f6247e
6 changed files with 100 additions and 18 deletions
14
Logs.hs
14
Logs.hs
|
@ -1,6 +1,6 @@
|
|||
{- git-annex log file names
|
||||
-
|
||||
- Copyright 2013-2015 Joey Hess <id@joeyh.name>
|
||||
- Copyright 2013-2018 Joey Hess <id@joeyh.name>
|
||||
-
|
||||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
@ -26,7 +26,7 @@ getLogVariety f
|
|||
| f `elem` topLevelUUIDBasedLogs = Just UUIDBasedLog
|
||||
| isRemoteStateLog f = Just NewUUIDBasedLog
|
||||
| isChunkLog f = ChunkLog <$> chunkLogFileKey f
|
||||
| isMetaDataLog f || f `elem` otherLogs = Just OtherLog
|
||||
| isMetaDataLog f || isRemoteMetaDataLog f || f `elem` otherLogs = Just OtherLog
|
||||
| otherwise = PresenceLog <$> firstJust (presenceLogs f)
|
||||
|
||||
{- All the uuid-based logs stored in the top of the git-annex branch. -}
|
||||
|
@ -185,3 +185,13 @@ metaDataLogExt = ".log.met"
|
|||
|
||||
isMetaDataLog :: FilePath -> Bool
|
||||
isMetaDataLog path = metaDataLogExt `isSuffixOf` path
|
||||
|
||||
{- The filename of the remote metadata log for a given key. -}
|
||||
remoteMetaDataLogFile :: GitConfig -> Key -> FilePath
|
||||
remoteMetaDataLogFile config key = branchHashDir config key </> keyFile key ++ remoteMetaDataLogExt
|
||||
|
||||
remoteMetaDataLogExt :: String
|
||||
remoteMetaDataLogExt = ".log.rmet"
|
||||
|
||||
isRemoteMetaDataLog :: FilePath -> Bool
|
||||
isRemoteMetaDataLog path = remoteMetaDataLogExt `isSuffixOf` path
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue