This has been a substantial amount of information regarding various configuration types, methods, and files. After this lecture, you have greatly broadened your horizon about configurations of datasets:
Configurations exist at different scopes and for different tools. Each of such configuration scopes exists in an individual file, on a system-wide, global (user-specific) or local (repository specific) level. In addition to Git’s local scope in
.git/config, DataLad introduces its own configurations within
.datalad/configthat apply to a specific dataset, but are committed and therefore distributed. More specialized scopes take precedence over more global scopes.
Almost all configurations can be set with the
git config(manual) command. Its structure looks like this:
git config --local/--global/--system --add/remove-all/--list section.[subsection.]variable "value"
.git/configconfiguration file is not version controlled, other configuration files (
.datalad/config) however are, and can be shared together with the dataset. Non-shared configurations will take precedence over shared configurations in a dataset clone.
Other tools than Git can be configured with the
git configcommand as well. If configurations needs to be written to a file other than a
.git(/)configfile, supply a path to this file with the
-f/--fileflag in a
.gitattributesfile is the only configuration file the
git configcommand cannot write to, because it has a different layout. However, run-procedures or the user can write simple rules into it that determine which files are annexed and which are stored in Git.
run-procedures offer an easy and fast alternative to DIY configurations, structuring, or processing of the dataset, and offer means to share or ship configurations together with a dataset. They can be applied already at creation of a dataset with
datalad create -c <procedure>, or executed later with a
datalad run-procedure(manual) command.
5.4.1. Now what can I do with it?¶
Configurations are not a closed book for you anymore. What will probably be
especially helpful is your new knowledge about
run-procedure command that allow you to configure the behavior
of git-annex in your dataset.