---
name: "git-annex-filter-process"
section: "1"
platform: "linux"
package: "git-annex"
version: "10.20261026-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/git-annex-filter-process"
---

# git-annex-filter-process(1)

long running git filter process for git-annex

## NAME

git-annex-filter-process - long running git filter process for git-annex

## SYNOPSIS

git annex filter-process

## DESCRIPTION

When this is not enabled, each file that git wants to filter involves starting up a new **git-annex smudge** process. Starting many such processes for many files can be slow, and can make commands like **git checkout** and **git add** slow when they are operating on a lot of files. (A lot of locked annexed files do not make **git checkout** slow, but unlocked files and non-annexed files do slow it down.)

On the other hand when this is enabled, **git add** of a large file does an unnecessary extra read of the file, and pipes its contents into git-annex. So when this is enabled, it will be faster to use **git-annex add** to add large files to the annex, rather than **git add**. Other commands that add files, like **git commit -a**, are also impacted by this.

This is used by default in git-annex repositories v9 and above, while v8 repositories use **git-annex smudge** for backwards compatability with older versions of git-annex.

To enable this in a v8 repository, run:

 git config filter.annex.process 'git-annex filter-process'

To disable it, you can just unset the config:

 git config --unset filter.annex.process

There will be no visible difference in behavior between enabling this and not, besides changes in speed and memory use when using git.

## OPTIONS

- The [git-annex-common-options(1)](/git-annex-common-options/1.md) can be used.

  -

  ## SEE ALSO

[git-annex(1)](/git-annex/1.md) [git-annex-smudge(1)](/git-annex-smudge/1.md)

## AUTHOR

Joey Hess \<id@joeyh.name\>
