use a subdirectory of annex.dbdir
This allows annex.dbdir to be set globally or always set to the same value when needed. Each repository uses a subdirectory of it. Sponsored-by: Dartmouth College's Datalad project
This commit is contained in:
parent
16e82f6cf9
commit
4cfe17a9e8
5 changed files with 15 additions and 6 deletions
|
@ -114,7 +114,7 @@ createAnnexDirectory dir = do
|
|||
top <- parentDir <$> fromRepo gitAnnexDir
|
||||
tops <- annexDbDir <$> Annex.getGitConfig >>= return . \case
|
||||
Nothing -> [top]
|
||||
Just dbdir -> [top, parentDir dbdir]
|
||||
Just dbdir -> [top, parentDir (parentDir dbdir)]
|
||||
createDirectoryUnder' tops dir createdir
|
||||
where
|
||||
createdir p = do
|
||||
|
|
|
@ -38,7 +38,7 @@ initDb db migration = do
|
|||
gc <- Annex.getGitConfig
|
||||
top <- parentDir <$> fromRepo gitAnnexDir
|
||||
let tops = case annexDbDir gc of
|
||||
Just topdbdir -> [top, parentDir topdbdir]
|
||||
Just topdbdir -> [top, parentDir (parentDir topdbdir)]
|
||||
Nothing -> [top]
|
||||
liftIO $ do
|
||||
createDirectoryUnder tops tmpdbdir
|
||||
|
|
|
@ -53,6 +53,7 @@ import Control.Concurrent.STM
|
|||
import qualified Data.Set as S
|
||||
import qualified Data.Map as M
|
||||
import qualified Data.ByteString as B
|
||||
import qualified System.FilePath.ByteString as P
|
||||
|
||||
-- | A configurable value, that may not be fully determined yet because
|
||||
-- the global git config has not yet been loaded.
|
||||
|
@ -213,7 +214,8 @@ extractGitConfig configsource r = GitConfig
|
|||
, annexPidLock = getbool (annexConfig "pidlock") False
|
||||
, annexPidLockTimeout = Seconds $ fromMaybe 300 $
|
||||
getmayberead (annexConfig "pidlocktimeout")
|
||||
, annexDbDir = toRawFilePath <$> getmaybe (annexConfig "dbdir")
|
||||
, annexDbDir = (\d -> toRawFilePath d P.</> fromUUID hereuuid)
|
||||
<$> getmaybe (annexConfig "dbdir")
|
||||
, annexAddUnlocked = configurable Nothing $
|
||||
fmap Just $ getmaybe (annexConfig "addunlocked")
|
||||
, annexSecureHashesOnly = getbool (annexConfig "securehashesonly") False
|
||||
|
|
|
@ -3,11 +3,14 @@
|
|||
subject="""comment 12"""
|
||||
date="2022-08-12T17:07:51Z"
|
||||
content="""
|
||||
annex.dbdir is now implemented.
|
||||
annex.dbdir is now implemented. Note that it can safely be set to the same
|
||||
path in several repositories. If all your repositories were on cifs,
|
||||
you could even set it globally.
|
||||
|
||||
This issue remains open because `git-annex init` ought to probe to
|
||||
determine when sqlite cannot be used on the repository's filesystem.
|
||||
I don't think it could itself set annex.dbdir to work around the
|
||||
problem, because what would it set it to? But it could explain the problem
|
||||
to the user and suggest that they set it.
|
||||
problem, because what would it set it to? Maybe
|
||||
`~/.cache/git-annex/something`? Seems better for it to explain the
|
||||
problem to the user and suggest that they set it.
|
||||
"""]]
|
||||
|
|
|
@ -1237,6 +1237,10 @@ repository, using [[git-annex-config]]. See its man page for a list.)
|
|||
that sqlite needs, and setting this to a directory on another filesystem
|
||||
can work around such a problem.
|
||||
|
||||
This can safely be set to the same directory in the configuration of
|
||||
multiple repositories; each repository will use a subdirectory for its
|
||||
sqlite database.
|
||||
|
||||
* `annex.cachecreds`
|
||||
|
||||
When "true" (the default), git-annex will cache credentials used to
|
||||
|
|
Loading…
Reference in a new issue