git-annex/doc/git-annex-common-options.mdwn
Joey Hess d266a41f8d
prevent numcopies or mincopies being configured to 0
Ignore annex.numcopies set to 0 in gitattributes or git config, or by
git-annex numcopies or by --numcopies, since that configuration would make
git-annex easily lose data. Same for mincopies.

This is a continuation of the work to make data only be able to be lost
when --force is used. It earlier led to the --trust option being disabled,
and similar reasoning applies here.

Most numcopies configs had docs that strongly discouraged setting it to 0
anyway. And I can't imagine a use case for setting to 0. Not that there
might not be one, but it's just so far from the intended use case of
git-annex, of managing and storing your data, that it does not seem like
it makes sense to cater to such a hypothetical use case, where any
git-annex drop can lose your data at any time.

Using a smart constructor makes sure every place avoids 0. Note that this
does mean that NumCopies is for the configured desired values, and not the
actual existing number of copies, which of course can be 0. The name
configuredNumCopies is used to make that clear.

Sponsored-by: Brock Spratlen on Patreon
2022-03-28 15:20:34 -04:00

147 lines
4 KiB
Markdown

# NAME
git-annex-common-options - options supported by many git-annex commands
# DESCRIPTION
These common options are accepted by many git-annex commands, and
may not be explicitly listed on their individual man pages.
Most of these options are accepted by all git-annex commands.
(Many commands also accept the [[git-annex-matching-options]](1).)
# OPTIONS
* `--force`
Force unsafe actions, such as dropping a file's content when no other
source of it can be verified to still exist, or adding ignored files.
Use with care.
* `--fast`
Avoid some expensive operations normally performed by a command.
What is avoided depends on the command, see individual command's man
pages for details.
* `--quiet`
Avoid the default verbose display of what is done; only show errors.
* `--verbose`
Enable verbose display.
* `--debug`
Display debug messages.
* `--no-debug`
Disable display of debug messages.
* `--debugfilter=name[,name..]`
When debug message display has been enabled by `--debug`, this filters
the debug messages that are displayed to ones coming from modules with
the specified names.
To find the names of modules, see the full debug output, which includes
the module name, eg "(Utility.Process)"
The full module name does not need to be
specified when using this, a substring of the name will do.
For example, `--debugfilter=Process,External` will display debugging
output when git-annex runs processes, and when it communicates with
external special remotes.
* `--numcopies=n`
Overrides the numcopies setting.
* `--mincopies=n`
Overrides the mincopies setting.
* `--time-limit=time`
Limits how long a git-annex command runs. The time can be something
like "5h", or "30m" or even "45s" or "10d".
Note that git-annex may continue running a little past the specified
time limit, in order to finish processing a file.
When the time limit prevents git-annex from doing all it
was asked to, it will exit with a special code, 101.
* `--size-limit=size`
Limits the total size of annexed files that a git-annex command
can process.
The size can be specified with any commonly used units, for example,
"50gb".
In some cases, an annexed file's size is not known. This option will
prevent git-annex from processing such files.
When the size limit prevents git-annex from acting on any files,
it will exit with a special code, 101.
* `--semitrust=repository`
* `--untrust=repository`
Overrides trust settings for a repository. May be specified more than once.
The repository should be specified using the name of a configured remote,
or the UUID or description of a repository.
* `--trust=repository`
This used to override trust settings for a repository, but now will
not do so, because trusting a repository can lead to data loss,
and data loss is now only enabled when using the `--force` option.
* `--trust-glacier`
This used to override trust settings for Glacier special remotes,
but now will not do so, because it could lead to data loss,
and data loss is now only enabled when using the `--force` option.
* `--backend=name`
Specifies which key-value backend to use. This can be used when
adding a file to the annex, or migrating a file. Once files
are in the annex, their backend is known and this option is not
necessary.
* `--user-agent=value`
Overrides the User-Agent to use when downloading files from the web.
* `--notify-finish`
Caused a desktop notification to be displayed after each successful
file download and upload.
(Only supported on some platforms, e.g. Linux with dbus. A no-op when
not supported.)
* `--notify-start`
Caused a desktop notification to be displayed when a file upload
or download has started, or when a file is dropped.
* `-c name=value`
Overrides git configuration settings. May be specified multiple times.
# SEE ALSO
[[git-annex]](1)
# AUTHOR
Joey Hess <id@joeyh.name>
Warning: Automatically converted into a man page by mdwn2man. Edit with care.