init: Probe whether the filesystem supports fifos, and if not, disable ssh connection caching.
This commit is contained in:
parent
0a74f4931a
commit
bd5d664a0c
3 changed files with 25 additions and 0 deletions
20
Init.hs
20
Init.hs
|
@ -18,6 +18,7 @@ import Utility.TempFile
|
||||||
import Utility.Network
|
import Utility.Network
|
||||||
import qualified Git
|
import qualified Git
|
||||||
import qualified Git.LsFiles
|
import qualified Git.LsFiles
|
||||||
|
import qualified Git.Config
|
||||||
import qualified Annex.Branch
|
import qualified Annex.Branch
|
||||||
import Logs.UUID
|
import Logs.UUID
|
||||||
import Annex.Version
|
import Annex.Version
|
||||||
|
@ -44,6 +45,7 @@ initialize mdescription = do
|
||||||
prepUUID
|
prepUUID
|
||||||
setVersion defaultVersion
|
setVersion defaultVersion
|
||||||
checkCrippledFileSystem
|
checkCrippledFileSystem
|
||||||
|
checkFifoSupport
|
||||||
Annex.Branch.create
|
Annex.Branch.create
|
||||||
gitPreCommitHookWrite
|
gitPreCommitHookWrite
|
||||||
createInodeSentinalFile
|
createInodeSentinalFile
|
||||||
|
@ -144,3 +146,21 @@ checkCrippledFileSystem = whenM probeCrippledFileSystem $ do
|
||||||
void $ liftIO clean
|
void $ liftIO clean
|
||||||
setDirect True
|
setDirect True
|
||||||
setVersion directModeVersion
|
setVersion directModeVersion
|
||||||
|
|
||||||
|
probeFifoSupport :: Annex Bool
|
||||||
|
probeFifoSupport = do
|
||||||
|
tmp <- fromRepo gitAnnexTmpDir
|
||||||
|
let f = tmp </> "gaprobe"
|
||||||
|
liftIO $ do
|
||||||
|
createDirectoryIfMissing True tmp
|
||||||
|
nukeFile f
|
||||||
|
createNamedPipe f ownerReadMode
|
||||||
|
ms <- tryIO $ getFileStatus f
|
||||||
|
nukeFile f
|
||||||
|
return $ either (const False) isNamedPipe ms
|
||||||
|
|
||||||
|
checkFifoSupport :: Annex ()
|
||||||
|
checkFifoSupport = unlessM probeFifoSupport $ do
|
||||||
|
warning "Detected a filesystem without fifo support."
|
||||||
|
warning "Disabling ssh connection caching."
|
||||||
|
setConfig (annexConfig "sshcaching") (Git.Config.boolConfig False)
|
||||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -28,6 +28,8 @@ git-annex (4.20130324) UNRELEASED; urgency=low
|
||||||
from git.
|
from git.
|
||||||
* Update working tree files fully atomically.
|
* Update working tree files fully atomically.
|
||||||
* webapp: Improved transfer queue management.
|
* webapp: Improved transfer queue management.
|
||||||
|
* init: Probe whether the filesystem supports fifos, and if not,
|
||||||
|
disable ssh connection caching.
|
||||||
|
|
||||||
-- Joey Hess <joeyh@debian.org> Mon, 25 Mar 2013 10:21:46 -0400
|
-- Joey Hess <joeyh@debian.org> Mon, 25 Mar 2013 10:21:46 -0400
|
||||||
|
|
||||||
|
|
|
@ -61,3 +61,6 @@ However ssh connection caching breaks things on NTFS volumes. If I turn off con
|
||||||
but it would be nifty if git-annex could detect the filesystem type and do The Right Thing.
|
but it would be nifty if git-annex could detect the filesystem type and do The Right Thing.
|
||||||
|
|
||||||
Thanks for all the work on git-annex -- it's an awesome project!
|
Thanks for all the work on git-annex -- it's an awesome project!
|
||||||
|
|
||||||
|
> [[done]], `git annex init` now probes for fifo support and disables ssh
|
||||||
|
> connection caching if it cannot make one. --[[Joey]]
|
||||||
|
|
Loading…
Reference in a new issue