add: Significantly speed up adding lots of non-large files to git
* add: Significantly speed up adding lots of non-large files to git, by disabling the annex smudge filter when running git add. * add --force-small: Run git add rather than updating the index itself, so any other smudge filters than the annex one that may be enabled will be used.
This commit is contained in:
parent
0b2b666a38
commit
5ce61c6b2a
6 changed files with 43 additions and 40 deletions
|
@ -43,6 +43,7 @@ import Git.FilePath
|
|||
import Git.Command
|
||||
import Git.Types
|
||||
import Git.Index
|
||||
import Config.Smudge
|
||||
import qualified Utility.RawFilePath as R
|
||||
|
||||
import qualified Data.ByteString as S
|
||||
|
@ -237,15 +238,14 @@ reconcileStaged qh = do
|
|||
liftIO $ writeFile indexcache $ showInodeCache cur
|
||||
|
||||
diff =
|
||||
-- Avoid using external diff command, which would be slow.
|
||||
-- (The -G option may make it be used otherwise.)
|
||||
[ Param "-c", Param "diff.external="
|
||||
-- Avoid running smudge or clean filters, since we want the
|
||||
-- raw output, and they would block trying to access the
|
||||
-- locked database. The --raw normally avoids git diff
|
||||
-- running them, but older versions of git need this.
|
||||
, Param "-c", Param "filter.annex.smudge="
|
||||
, Param "-c", Param "filter.annex.clean="
|
||||
bypassSmudgeConfig ++
|
||||
-- Avoid using external diff command, which would be slow.
|
||||
-- (The -G option may make it be used otherwise.)
|
||||
[ Param "-c", Param "diff.external="
|
||||
, Param "diff"
|
||||
, Param "--cached"
|
||||
, Param "--raw"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue