annex.numcopies
Tells git-annex how many copies it should preserve of files, over all repositories. The default is
1.
When git-annex is asked to drop a file, it first verifies that the number of copies can be
satisfied among all the other repositories that have a copy of the file.
In unusual situations, involving special remotes that do not support locking, and concurrent drops
of the same content from multiple repositories, git-annex may violate the numcopies setting. It
still guarantees at least 1 copy is preserved. This can be configured by setting annex.mincopies.
This is the same setting that the git-annex-numcopies(1) command configures. It can be overridden
on a per-file basis by the annex.numcopies setting in .gitattributes files.
annex.mincopies
Tells git-annex how many copies it is required to preserve of files, over all repositories. The
default is 1.
This supplements the annex.numcopies setting. In unusual situations, involving special remotes
that do not support locking, and concurrent drops of the same content from multiple repositories,
git-annex may violate the numcopies setting. In these unusual situations, git-annex ensures that
the number of copies never goes below mincopies.
It is a good idea to not only rely on only setting mincopies. Set numcopies as well, to a larger
number, and keep mincopies at the bare minimum you're comfortable with. Setting mincopies to a
large number, rather than setting numcopies will in some cases prevent droping content in entirely
safe situations.
This is the same setting that the git-annex-mincopies(1) command configures. It can be overridden
on a per-file basis by the annex.mincopies setting in .gitattributes files.
annex.largefiles
Used to configure which files are large enough to be added to the annex. It is an expression that
matches the large files, eg "include=*.mp3orlargerthan(500kb)". See git-annex-matching-expression(1) for details on the syntax.
This configures the behavior of both git-annex and git when adding files to the repository. By
default, git-annexadd adds all files to the annex (except dotfiles and files in dotdirs), and gitadd adds files to git (unless they were added to the annex previously). When annex.largefiles is
configured, both gitannexadd and gitadd will add matching large files to the annex, and the
other files to git.
Other git-annex commands also honor annex.largefiles, including gitanneximport, gitannexaddurl, gitanneximportfeed, git-annexassist, and the git-annexassistant.
This sets a default, which can be overridden by annex.largefiles attributes in .gitattributes
files, or by gitconfig.
annex.dotfiles
Normally, dotfiles and files inside dotdirs are assumed to be configuration files like .gitignore,
whose content should always be part of the git repository, so they will not be added to the annex.
Setting annex.dotfiles to true makes these files be added to the annex the same as any other file.
This sets a default, which can be overridden by annex.dotfiles in gitconfig.
annex.addunlocked
Commands like git-annexadd default to adding files to the repository in locked form. This can
make them add the files in unlocked form, the same as if git-annex-unlock(1) were run on the
files.
This can be set to "true" to add everything unlocked, or it can be a more complicated expression
that matches files by name, size, or content. See git-annex-matching-expression(1) for details.
This sets a default, which can be overridden by annex.addunlocked in gitconfig.
annex.autocommit
Set to false to prevent the git-annexassistant, git-annexassist and git-annexsync from
automatically committing changes to files in the repository.
This sets a default, which can be overridden by annex.autocommit in gitconfig.
annex.resolvemerge
Set to false to prevent merge conflicts in the checked out branch being automatically resolved by
the git-annexassitant, git-annexsync, git-annexpull, git-annex merge, and the git-annexpost-receive hook.
This sets a default, which can be overridden by annex.resolvemerge in gitconfig.
annex.synccontent
Set to true to make git-annexsync default to transferring annexed content.
Set to false to prevent git-annexpull and git-annex push from transferring annexed content.
This sets a default, which can be overridden by annex.synccontent in gitconfig.
annex.synconlyannex
Set to true to make git-annexsync, git-annexpull and git-annex push default to only operate on
the git-annex branch and annexed content.
This sets a default, which can be overridden by annex.synconlyannex in gitconfig.
annex.securehashesonly
Set to true to indicate that the repository should only use cryptographically secure hashes (SHA2,
SHA3) and not insecure hashes (MD5, SHA1) for content.
When this is set, the contents of files using cryptographically insecure hashes will not be
allowed to be added to the repository.
Also, git-annexfsck will complain about any files present in the repository that use insecure
hashes.
Note that this is only read from the git-annex branch by gitannexinit, and is copied to the
corresponding git config setting. So, changes to the value in the git-annex branch won't affect a
repository once it has been initialized.