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
|
top <- parentDir <$> fromRepo gitAnnexDir
|
||||||
tops <- annexDbDir <$> Annex.getGitConfig >>= return . \case
|
tops <- annexDbDir <$> Annex.getGitConfig >>= return . \case
|
||||||
Nothing -> [top]
|
Nothing -> [top]
|
||||||
Just dbdir -> [top, parentDir dbdir]
|
Just dbdir -> [top, parentDir (parentDir dbdir)]
|
||||||
createDirectoryUnder' tops dir createdir
|
createDirectoryUnder' tops dir createdir
|
||||||
where
|
where
|
||||||
createdir p = do
|
createdir p = do
|
||||||
|
|
|
@ -38,7 +38,7 @@ initDb db migration = do
|
||||||
gc <- Annex.getGitConfig
|
gc <- Annex.getGitConfig
|
||||||
top <- parentDir <$> fromRepo gitAnnexDir
|
top <- parentDir <$> fromRepo gitAnnexDir
|
||||||
let tops = case annexDbDir gc of
|
let tops = case annexDbDir gc of
|
||||||
Just topdbdir -> [top, parentDir topdbdir]
|
Just topdbdir -> [top, parentDir (parentDir topdbdir)]
|
||||||
Nothing -> [top]
|
Nothing -> [top]
|
||||||
liftIO $ do
|
liftIO $ do
|
||||||
createDirectoryUnder tops tmpdbdir
|
createDirectoryUnder tops tmpdbdir
|
||||||
|
|
|
@ -53,6 +53,7 @@ import Control.Concurrent.STM
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import qualified Data.ByteString as B
|
import qualified Data.ByteString as B
|
||||||
|
import qualified System.FilePath.ByteString as P
|
||||||
|
|
||||||
-- | A configurable value, that may not be fully determined yet because
|
-- | A configurable value, that may not be fully determined yet because
|
||||||
-- the global git config has not yet been loaded.
|
-- the global git config has not yet been loaded.
|
||||||
|
@ -213,7 +214,8 @@ extractGitConfig configsource r = GitConfig
|
||||||
, annexPidLock = getbool (annexConfig "pidlock") False
|
, annexPidLock = getbool (annexConfig "pidlock") False
|
||||||
, annexPidLockTimeout = Seconds $ fromMaybe 300 $
|
, annexPidLockTimeout = Seconds $ fromMaybe 300 $
|
||||||
getmayberead (annexConfig "pidlocktimeout")
|
getmayberead (annexConfig "pidlocktimeout")
|
||||||
, annexDbDir = toRawFilePath <$> getmaybe (annexConfig "dbdir")
|
, annexDbDir = (\d -> toRawFilePath d P.</> fromUUID hereuuid)
|
||||||
|
<$> getmaybe (annexConfig "dbdir")
|
||||||
, annexAddUnlocked = configurable Nothing $
|
, annexAddUnlocked = configurable Nothing $
|
||||||
fmap Just $ getmaybe (annexConfig "addunlocked")
|
fmap Just $ getmaybe (annexConfig "addunlocked")
|
||||||
, annexSecureHashesOnly = getbool (annexConfig "securehashesonly") False
|
, annexSecureHashesOnly = getbool (annexConfig "securehashesonly") False
|
||||||
|
|
|
@ -3,11 +3,14 @@
|
||||||
subject="""comment 12"""
|
subject="""comment 12"""
|
||||||
date="2022-08-12T17:07:51Z"
|
date="2022-08-12T17:07:51Z"
|
||||||
content="""
|
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
|
This issue remains open because `git-annex init` ought to probe to
|
||||||
determine when sqlite cannot be used on the repository's filesystem.
|
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
|
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
|
problem, because what would it set it to? Maybe
|
||||||
to the user and suggest that they set it.
|
`~/.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
|
that sqlite needs, and setting this to a directory on another filesystem
|
||||||
can work around such a problem.
|
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`
|
* `annex.cachecreds`
|
||||||
|
|
||||||
When "true" (the default), git-annex will cache credentials used to
|
When "true" (the default), git-annex will cache credentials used to
|
||||||
|
|
Loading…
Reference in a new issue