Provided by: git-annex_8.20200226-1_amd64 bug

NAME

       git-annex-smudge - git filter driver for git-annex

SYNOPSIS

       git annex smudge [--clean] file

       git annex smudge --update

DESCRIPTION

       This command lets git-annex be used as a git filter driver which lets annexed files in the
       git repository to be unlocked, instead of being symlinks, and lets git add store files  in
       the annex.

       When  adding  a file with git add, the annex.largefiles config is consulted to decide if a
       given file should be added to git as-is, or if its content are large enough to need to use
       git-annex.   The  annex.gitaddtoannex setting overrides that; setting it to false prevents
       git add from adding files to the annex.

       However, if git-annex can tell that a file was annexed before, it will still be  added  to
       the  annex  even  when  those  configs would normally prevent it. Two examples of this are
       adding a modified version of an annexed file, and moving an annexed file to a new filename
       and adding that.

       The  git  configuration  to  use  this  command as a filter driver is as follows.  This is
       normally set up for you by git-annex  init,  so  you  should  not  need  to  configure  it
       manually.

        [filter "annex"]
                smudge = git-annex smudge %f
                clean = git-annex smudge --clean %f

       To  make  git use that filter driver, it needs to be configured in the .gitattributes file
       or in .git/info/attributes. The  latter  is  normally  configured  when  a  repository  is
       initialized, with the following contents:

        * filter=annex
        .* !filter

       The  smudge  filter  does  not provide git with the content of annexed files, because that
       would be slow and triggers memory leaks in git. Instead, it records which  worktree  files
       need  to  be updated, and git annex smudge --update later updates the work tree to contain
       the content. That is run by several git hooks,  including  post-checkout  and  post-merge.
       However,  a few git commands, notably git stash and git cherry-pick, do not run any hooks,
       so after using those commands you can manually run git annex smudge --update to update the
       working tree.

SEE ALSO

       git-annex(1)

AUTHOR

       Joey Hess <id@joeyh.name>

                                                                              git-annex-smudge(1)