git-annex/doc/git-annex-fsck.mdwn
Joey Hess b184fc490a
split out common options to its own page and mention it on each subcommand page
Sometimes users would get confused because an option they were looking
for was not mentioned on a subcommand's man page, and they had not
noticed that the main git-annex man page had a list of common options.
This change lets each subcommand mention the common options, similarly
to how the matching options are handled.

This commit was sponsored by Svenne Krap on Patreon.
2021-05-10 15:00:13 -04:00

134 lines
3.6 KiB
Markdown

# NAME
git-annex fsck - find and fix problems
# SYNOPSIS
git annex fsck `[path ...]`
# DESCRIPTION
This command checks annexed files for consistency, and warns about or
fixes any problems found. This is a good complement to `git fsck`.
The default is to check all annexed files in the current directory and
subdirectories. With parameters, only the specified files are checked.
The problems fsck finds include files that have gotten corrupted,
files whose content has somehow become lost, files that do not have the
configured number of copies yet made, and keys that can be upgraded to a
better format.
# OPTIONS
* `--from=remote`
Check a remote, rather than the local repository.
Note that by default, files will be copied from the remote to check
their contents. To avoid this expensive transfer, and only
verify that the remote still has the files that are expected to be on it,
add the `--fast` option.
* `--fast`
Avoids expensive checksum calculations (and expensive transfers when
fscking a remote).
* `--incremental`
Start a new incremental fsck pass. An incremental fsck can be interrupted
at any time, with eg ctrl-c.
* `--more`
Resume the last incremental fsck pass, where it left off.
Resuming may redundantly check some files that were checked
before. Any files that fsck found problems with before will be re-checked
on resume. Also, checkpoints are made every 1000 files or every 5 minutes
during a fsck, and it resumes from the last checkpoint.
* `--incremental-schedule=time`
This makes a new incremental fsck be started only a specified
time period after the last incremental fsck was started.
The time is in the form "10d" or "300h".
Maybe you'd like to run a fsck for 5 hours at night, picking up each
night where it left off. You'd like this to continue until all files
have been fscked. And once it's done, you'd like a new fsck pass to start,
but no more often than once a month. Then put this in a nightly cron job:
git annex fsck --incremental-schedule 30d --time-limit 5h
* `--numcopies=N`
Override the normally configured number of copies.
To verify data integrity only while disregarding required number of copies,
use `--numcopies=1`.
* `--all` `-A`
Normally only the files in the currently checked out branch
are fscked. This option causes all versions of all files to be fscked.
This is the default behavior when running git-annex in a bare repository.
* `--branch=ref`
Operate on files in the specified branch or treeish.
* `--unused`
Operate on files found by last run of git-annex unused.
* `--key=keyname`
Use this option to fsck a specified key.
* file matching options
The [[git-annex-matching-options]](1)
can be used to specify files to fsck.
* `--jobs=N` `-JN`
Runs multiple fsck jobs in parallel. For example: `-J4`
Setting this to "cpus" will run one job per CPU core.
* `--json`
Enable JSON output. This is intended to be parsed by programs that use
git-annex. Each line of output is a JSON object.
* `--json-error-messages`
Messages that would normally be output to standard error are included in
the json instead.
* `--quiet`
Like all git-annex commands, this option makes only error and warning
messages be displayed. This is particularly useful with fsck, which
normally displays all the files it's checking even when there is no
problem with them.
* Also the [[git-annex-common-options]](1) can be used.
# SEE ALSO
[[git-annex]](1)
[[git-annex-repair]](1)
[[git-annex-expire]](1)
# AUTHOR
Joey Hess <id@joeyh.name>
Warning: Automatically converted into a man page by mdwn2man. Edit with care.