logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

git-annex-config - configuration stored in git-annex branch

Author

       Joey Hess <id@joeyh.name>

                                                                                             git-annex-config(1)

Description

       Set or get configuration settings stored in the git-annex branch.

       Unlike  gitconfig  settings, these settings can be seen in all clones of the repository, once they have
       gotten their git-annex branches in sync.

       These settings can be overridden on a per-repository basis using gitconfig.

       git-annex does not check the git-annex branch for all the gitconfig settings that affect it  (which  are
       listed  on  the  git-annex  man page CONFIGURATION section). Only a few make sense to be able to set such
       that all clones of a repository see the setting, and so git-annex only looks for these.

Example

       Suppose you want to prevent git annex sync from committing changes to  files,  so  a  manual  git  commit
       workflow is used in all clones of the repository. Then run:

        git annex config --set annex.autocommit false

       If you want to override that in a partiticular clone, just use git config in the clone:

        git config annex.autocommit true

       And to get back to the default behavior:

        git annex config --unset annex.autocommit

Name

       git-annex-config - configuration stored in git-annex branch

Options

--setnamevalue

              Set a value.

       --getname
              Get a value.

       --unset
              Unset a value.

       --show-originname
              Explain where the value is configured, whether in the git-annex branch, or in a gitconfig  file,
              or  .gitattributes file. When a value is configured in multiple places, displays the place and the
              value that will be used.

              Note that the parameter can be the name of one of the settings listed above, but  also  any  other
              configuration  setting  supported by git-annex.  For example, "annex.backend" cannot be set in the
              git-annex branch, but it can be set in .gitattributes or gitconfig and this  option  can  explain
              which setting will be used for it.

       --for-filefile
              Can  be  used  in  combination  with  --show-origin  to  specify  what  filename  to  check for in
              .gitattributes.

       Also the git-annex-common-options(1) can be used.

See Also

git-annex(1)

       git-config(1)

       git-annex-vicfg(1)

Supported Settings

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.

Synopsis

       git annex config --set name value

       git annex config --get name

       git annex config --unset name

       git annex config --show-origin name

See Also