comment and todo

This commit is contained in:
Joey Hess 2021-01-04 12:26:48 -04:00
parent 27ec6c7427
commit e7b0754171
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 37 additions and 0 deletions

View file

@ -0,0 +1,21 @@
[[!comment format=mdwn
username="joey"
subject="""comment 7"""
date="2021-01-04T16:13:36Z"
content="""
This will avoid the overhead of the smudge filter, when all the files
you're adding are ones you want stored in git, *not* in git-annex.
git-annex add --force-small
I do think it would be possible for `git-annex add` to use the same method
whenever it adds non-large files. But it might have unwanted other effects,
since the way that manages to be fast is by avoding using `git add` and
having git-annex hash the file and add it to git itself. Opened
[[todo/speed_up_git_annex_add_of_small_files]] to consider this.
The only way to speed up `git add` is to disable the smudge filter, but then
all files you `git add` will be stored in git, not in git-annex. And
disabling the smudge filter also will prevent using unlocked annexed files.
(See [[todo/git_smudge_clean_interface_suboptiomal]] for background.)
"""]]

View file

@ -0,0 +1,16 @@
When adding a lot of small files to git with `git annex add`,
it is slow because git runs the smudge filter on all files
and [[that_is_slow|todo/git_smudge_clean_interface_suboptiomal]].
But `git-annex add --force-small` is much much faster, because that
bypasses git add entirely, hashing the content and staging it in the index
from git-annex. So could that same method be used to speed up the slow case?
My concern with doing this is that there may be things that `git add`
does that are not done when bypassing it. The only one I can think of is,
if the user has other smudge/clean filters than the git-annex one
installed, they would not be run either. It could be argued that's a bug
with the existing `--force-small` too, but at least that's not the default.
Possible alternate approach: Unsetting filter.annex.smudge and
filter.annex.clean when running `git add`?