diff options
Diffstat (limited to 'Remote')
-rw-r--r-- | Remote/Git.hs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Remote/Git.hs b/Remote/Git.hs index 80c0579cc..c80a0d1c6 100644 --- a/Remote/Git.hs +++ b/Remote/Git.hs @@ -369,8 +369,12 @@ lockKey r key callback -- Lock content from perspective of remote, -- and then run the callback in the original -- annex monad, not the remote's. - onLocal r $ Annex.Content.lockContentShared key $ - liftIO . inorigrepo . callback + onLocal r $ + Annex.Content.lockContentShared key $ \vc -> + ifM (Annex.Content.inAnnex key) + ( liftIO $ inorigrepo $ callback vc + , failedlock + ) | Git.repoIsSsh (repo r) = do showLocking r Just (cmd, params) <- Ssh.git_annex_shell (repo r) "lockcontent" |