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
{- 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.
-}
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
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
--- /dev/null
+[[!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.
+"""]]