Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
git-annex-smudge(1)	    General Commands Manual	   git-annex-smudge(1)

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

       git annex smudge	[--clean] file

       git annex smudge	--update

       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 con-
       sulted 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
       taddtoannex 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 pre-
       vent  it.  Two examples of this are adding a modified version of	an an-
       nexed file, and moving an annexed file to a  new	 filename  and	adding

       The git configuration to	use this command as a filter driver is as fol-
       lows.  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 con-

	* 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. In-
       stead, it records which worktree	files need to be updated, and git  an-
       nex 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.


       Joey Hess <>



Want to link to this manual page? Use this URL:

home | help