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 qualified Git
|
||||
import qualified Git.LsFiles
|
||||
import qualified Git.Config
|
||||
import qualified Annex.Branch
|
||||
import Logs.UUID
|
||||
import Annex.Version
|
||||
|
@ -44,6 +45,7 @@ initialize mdescription = do
|
|||
prepUUID
|
||||
setVersion defaultVersion
|
||||
checkCrippledFileSystem
|
||||
checkFifoSupport
|
||||
Annex.Branch.create
|
||||
gitPreCommitHookWrite
|
||||
createInodeSentinalFile
|
||||
|
@ -144,3 +146,21 @@ checkCrippledFileSystem = whenM probeCrippledFileSystem $ do
|
|||
void $ liftIO clean
|
||||
setDirect True
|
||||
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.
|
||||
* Update working tree files fully atomically.
|
||||
* 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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
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