unannex, uninit: Avoid running git rm once per annexed file, for a large speedup.
This commit is contained in:
parent
cddf2343b2
commit
62d5a73bdd
4 changed files with 21 additions and 6 deletions
|
@ -28,6 +28,8 @@ git-annex (8.20210128) UNRELEASED; urgency=medium
|
|||
rather than doing it in a second pass.
|
||||
* Bugfix: fsck --from a ssh remote did not actually check that the
|
||||
content on the remote is not corrupted.
|
||||
* unannex, uninit: Avoid running git rm once per annexed file,
|
||||
for a large speedup.
|
||||
|
||||
-- Joey Hess <id@joeyh.name> Thu, 28 Jan 2021 12:34:32 -0400
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{- git-annex command
|
||||
-
|
||||
- Copyright 2010-2013 Joey Hess <id@joeyh.name>
|
||||
- Copyright 2010-2021 Joey Hess <id@joeyh.name>
|
||||
-
|
||||
- Licensed under the GNU AGPL version 3 or higher.
|
||||
-}
|
||||
|
@ -10,7 +10,7 @@ module Command.Unannex where
|
|||
import Command
|
||||
import qualified Annex
|
||||
import Annex.Perms
|
||||
import qualified Git.Command
|
||||
import qualified Annex.Queue
|
||||
import Utility.CopyFile
|
||||
import qualified Database.Keys
|
||||
import Git.FilePath
|
||||
|
@ -42,14 +42,13 @@ start si file key =
|
|||
perform :: RawFilePath -> Key -> CommandPerform
|
||||
perform file key = do
|
||||
liftIO $ removeFile (fromRawFilePath file)
|
||||
inRepo $ Git.Command.run
|
||||
[ Param "rm"
|
||||
, Param "--cached"
|
||||
Annex.Queue.addCommand [] "rm"
|
||||
[ Param "--cached"
|
||||
, Param "--force"
|
||||
, Param "--quiet"
|
||||
, Param "--"
|
||||
, File (fromRawFilePath file)
|
||||
]
|
||||
[fromRawFilePath file]
|
||||
next $ cleanup file key
|
||||
|
||||
cleanup :: RawFilePath -> Key -> CommandCleanup
|
||||
|
|
|
@ -20,3 +20,5 @@ git annex 8.20210127-g42239bc
|
|||
|
||||
[[!meta author=yoh]]
|
||||
[[!tag projects/datalad]]
|
||||
|
||||
> [[fixed|done]] --[[Joey]]
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 1"""
|
||||
date="2021-02-22T16:45:46Z"
|
||||
content="""
|
||||
Also unannex is slow the same way. Looks like it can easily be fixed using
|
||||
git command queueing; I see no reason the rm needs to happen before
|
||||
changes to the working tree, as --cached makes the rm only operate on the
|
||||
index.
|
||||
|
||||
Rest seem fast enough.
|
||||
"""]]
|
Loading…
Reference in a new issue