faster local-local dropping
Dropping a key from a local remote ran git-annex-shell unnecessarily. Now git-annex-shell is never used when acting on a local remote.
This commit is contained in:
parent
b81d662cbf
commit
775958b4dc
1 changed files with 9 additions and 0 deletions
|
@ -20,6 +20,7 @@ import qualified Git.Command
|
||||||
import qualified Git.Config
|
import qualified Git.Config
|
||||||
import qualified Git.Construct
|
import qualified Git.Construct
|
||||||
import qualified Annex
|
import qualified Annex
|
||||||
|
import Logs.Presence
|
||||||
import Annex.UUID
|
import Annex.UUID
|
||||||
import qualified Annex.Content
|
import qualified Annex.Content
|
||||||
import qualified Annex.BranchState
|
import qualified Annex.BranchState
|
||||||
|
@ -192,6 +193,14 @@ keyUrls r key = map tourl (annexLocations key)
|
||||||
|
|
||||||
dropKey :: Git.Repo -> Key -> Annex Bool
|
dropKey :: Git.Repo -> Key -> Annex Bool
|
||||||
dropKey r key
|
dropKey r key
|
||||||
|
| not $ Git.repoIsUrl r = liftIO $ onLocal r $ do
|
||||||
|
ensureInitialized
|
||||||
|
whenM (Annex.Content.inAnnex key) $ do
|
||||||
|
Annex.Content.lockContent key $
|
||||||
|
Annex.Content.removeAnnex key
|
||||||
|
Annex.Content.logStatus key InfoMissing
|
||||||
|
Annex.Content.saveState True
|
||||||
|
return True
|
||||||
| Git.repoIsHttp r = error "dropping from http repo not supported"
|
| Git.repoIsHttp r = error "dropping from http repo not supported"
|
||||||
| otherwise = onRemote r (boolSystem, False) "dropkey"
|
| otherwise = onRemote r (boolSystem, False) "dropkey"
|
||||||
[ Params "--quiet --force"
|
[ Params "--quiet --force"
|
||||||
|
|
Loading…
Reference in a new issue