diff options
author | Joey Hess <joeyh@joeyh.name> | 2015-02-12 16:12:32 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2015-02-12 16:14:53 -0400 |
commit | 6533bb6281744c1494612adf609222eb215da5be (patch) | |
tree | 19d5341dec24c9f5113b02d1849f78f129befa7a /RemoteDaemon | |
parent | d1abee8f3ca83d48782df72406e81dc5e12a7595 (diff) |
propigate ssh-options everywhere ssh caching is used
* sync: Use the ssh-options git config when doing git pull and push.
* remotedaemon: Use the ssh-options git config.
Note that the rename env var means that if a new git-annex calls an old one
for git-annex ssh, or a new calls an old, nothing much will go wrong;
just ssh caching won't happen.
Diffstat (limited to 'RemoteDaemon')
-rw-r--r-- | RemoteDaemon/Core.hs | 6 | ||||
-rw-r--r-- | RemoteDaemon/Transport/Ssh.hs | 8 | ||||
-rw-r--r-- | RemoteDaemon/Types.hs | 3 |
3 files changed, 10 insertions, 7 deletions
diff --git a/RemoteDaemon/Core.hs b/RemoteDaemon/Core.hs index bc5ad8a58..405a1fd88 100644 --- a/RemoteDaemon/Core.hs +++ b/RemoteDaemon/Core.hs @@ -117,14 +117,16 @@ genRemoteMap h@(TransportHandle g _) ochan = gen r = case Git.location r of Git.Url u -> case M.lookup (uriScheme u) remoteTransports of Just transport - | remoteAnnexSync (extractRemoteGitConfig r (Git.repoDescribe r)) -> do + | remoteAnnexSync gc -> do ichan <- newTChanIO :: IO (TChan Consumed) return $ Just ( r - , (transport r (RemoteURI u) h ichan ochan, ichan) + , (transport (RemoteRepo r gc) (RemoteURI u) h ichan ochan, ichan) ) _ -> return Nothing _ -> return Nothing + where + gc = extractRemoteGitConfig r (Git.repoDescribe r) genTransportHandle :: IO TransportHandle genTransportHandle = do diff --git a/RemoteDaemon/Transport/Ssh.hs b/RemoteDaemon/Transport/Ssh.hs index 509b8f319..bdf4f54f0 100644 --- a/RemoteDaemon/Transport/Ssh.hs +++ b/RemoteDaemon/Transport/Ssh.hs @@ -22,13 +22,13 @@ import Control.Concurrent.STM import Control.Concurrent.Async transport :: Transport -transport r url h@(TransportHandle g s) ichan ochan = do +transport rr@(RemoteRepo r gc) url h@(TransportHandle g s) ichan ochan = do -- enable ssh connection caching wherever inLocalRepo is called - g' <- liftAnnex h $ sshCachingTo r g - transport' r url (TransportHandle g' s) ichan ochan + g' <- liftAnnex h $ sshOptionsTo r gc g + transport' rr url (TransportHandle g' s) ichan ochan transport' :: Transport -transport' r url transporthandle ichan ochan = do +transport' (RemoteRepo r _) url transporthandle ichan ochan = do v <- liftAnnex transporthandle $ git_annex_shell r "notifychanges" [] [] case v of diff --git a/RemoteDaemon/Types.hs b/RemoteDaemon/Types.hs index 9009533e1..5fd074a1e 100644 --- a/RemoteDaemon/Types.hs +++ b/RemoteDaemon/Types.hs @@ -14,6 +14,7 @@ import Common import qualified Annex import qualified Git.Types as Git import qualified Utility.SimpleProtocol as Proto +import Types.GitConfig import Network.URI import Control.Concurrent @@ -27,7 +28,7 @@ newtype RemoteURI = RemoteURI URI -- from a Chan, and emits others to another Chan. type Transport = RemoteRepo -> RemoteURI -> TransportHandle -> TChan Consumed -> TChan Emitted -> IO () -type RemoteRepo = Git.Repo +data RemoteRepo = RemoteRepo Git.Repo RemoteGitConfig type LocalRepo = Git.Repo -- All Transports share a single AnnexState MVar |