Fix duplicate progress meter display when downloading from a git remote over http with -J.

This commit is contained in:
Joey Hess 2016-04-19 13:10:56 -04:00
parent e3fb94b006
commit 850d0da699
Failed to extract signature
3 changed files with 15 additions and 6 deletions

View file

@ -418,8 +418,11 @@ lockKey r key callback
{- Tries to copy a key's content from a remote's annex to a file. -}
copyFromRemote :: Remote -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex (Bool, Verification)
copyFromRemote r key file dest p = concurrentMetered (Just p) key $
copyFromRemote' r key file dest
copyFromRemote r key file dest p
| Git.repoIsHttp (repo r) = unVerified $
Annex.Content.downloadUrl key p (keyUrls r key) dest
| otherwise = concurrentMetered (Just p) key $
copyFromRemote' r key file dest
copyFromRemote' :: Remote -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex (Bool, Verification)
copyFromRemote' r key file dest meterupdate
@ -441,8 +444,6 @@ copyFromRemote' r key file dest meterupdate
| Git.repoIsSsh (repo r) = unVerified $ feedprogressback $ \p -> do
Ssh.rsyncHelper (Just (combineMeterUpdate meterupdate p))
=<< Ssh.rsyncParamsRemote False r Download key dest file
| Git.repoIsHttp (repo r) = unVerified $
Annex.Content.downloadUrl key meterupdate (keyUrls r key) dest
| otherwise = error "copying from non-ssh, non-http remote not supported"
where
{- Feed local rsync's progress info back to the remote,
@ -519,8 +520,7 @@ copyFromRemoteCheap r key af file
)
| Git.repoIsSsh (repo r) =
ifM (Annex.Content.preseedTmp key file)
( fst <$> concurrentMetered Nothing key
(copyFromRemote' r key af file)
( fst <$> copyFromRemote r key af file nullMeterUpdate
, return False
)
| otherwise = return False