cf8b30c914
The tricky thing about this turned out to be handling renames and reverts. For that, it has to make two passes over the git log, and to avoid buffering a possibly huge amount of logs in memory (ie the whole git log of an entire repository!), runs git log twice. (It might be possible to speed this up by asking git log to show a diff, and so avoid needing to use catKey.) Sponsored-By: Brock Spratlen on Patreon
110 lines
3 KiB
Markdown
110 lines
3 KiB
Markdown
# NAME
|
|
|
|
git-annex unused - look for unused file content
|
|
|
|
# SYNOPSIS
|
|
|
|
git annex unused
|
|
|
|
# DESCRIPTION
|
|
|
|
Checks the annex for data that does not correspond to any files present
|
|
in any tag or branch, or in the git index, and prints a numbered list
|
|
of the data.
|
|
|
|
After running this command, you can use the `--unused` option with many
|
|
other git-annex commands to operate on all the unused data that was found.
|
|
|
|
For example, to move all unused data to origin:
|
|
|
|
git annex unused; git annex move --unused --to origin
|
|
|
|
# OPTIONS
|
|
|
|
* `--fast`
|
|
|
|
Only show unused temp and bad files.
|
|
|
|
* `--from=repository`
|
|
|
|
Check for unused data that is located in a repository.
|
|
|
|
The repository should be specified using the name of a configured remote,
|
|
or the UUID or description of a repository.
|
|
|
|
* `--used-refspec=+ref:-ref`
|
|
|
|
By default, any data that the git index uses, or that any refs in the git
|
|
repository point to is considered to be used. If you only want to use
|
|
some refs, you can use this option to specify the ones to use. Data that
|
|
is not in the specified refs (and not used by the index) will then be
|
|
considered unused.
|
|
|
|
See REFSPEC FORMAT below for details of the format of this setting.
|
|
|
|
The git configuration annex.used-refspec can be used to configure
|
|
this in a more permanent fashion.
|
|
|
|
* `--json`
|
|
|
|
Enable JSON output. This is intended to be parsed by programs that use
|
|
git-annex.
|
|
|
|
* `--json-error-messages`
|
|
|
|
Messages that would normally be output to standard error are included in
|
|
the JSON instead.
|
|
|
|
* Also the [[git-annex-common-options]](1) can be used.
|
|
|
|
# REFSPEC FORMAT
|
|
|
|
The refspec format for --used-refspec and annex.used-refspec is
|
|
a colon-separated list of additions and removals of refs.
|
|
A somewhat contrived example:
|
|
|
|
+refs/heads/*:+HEAD^:+refs/tags/*:-refs/tags/old-tag:reflog
|
|
|
|
This adds all refs/heads/ refs, as well as the previous version
|
|
of HEAD. It also adds all tags, except for old-tag. And it adds
|
|
all refs from the reflog.
|
|
|
|
The default behavior is equivilant to `--used-refspec=+refs/*:+HEAD`
|
|
|
|
The refspec is processed by starting with an empty set of refs,
|
|
and walking the list in order from left to right.
|
|
|
|
Each + using a glob is matched against all relevant refs
|
|
(a subset of `git show-ref`) and all matching refs are added
|
|
to the set.
|
|
For example, "+refs/remotes/*" adds all remote refs.
|
|
|
|
Each + without a glob adds the literal value to the set.
|
|
For example, "+HEAD^" adds "HEAD^".
|
|
|
|
Each - is matched against the set of refs accumulated so far.
|
|
Any refs with names that match are removed from the set.
|
|
|
|
"reflog" adds all the refs from the reflog. This will make past versions
|
|
of files not be considered to be unused until the ref expires from the
|
|
reflog (by default for 90 days). Note that this may make git-annex unused
|
|
take some time to complete, it if needs to check every ref from the
|
|
reflog.
|
|
|
|
# SEE ALSO
|
|
|
|
[[git-annex]](1)
|
|
|
|
[[git-annex-dropunused]](1)
|
|
|
|
[[git-annex-addunused]](1)
|
|
|
|
[[git-annex-whereused]](1)
|
|
|
|
[[git-annex-oldkeys]](1)
|
|
|
|
# AUTHOR
|
|
|
|
Joey Hess <id@joeyh.name>
|
|
|
|
Warning: Automatically converted into a man page by mdwn2man. Edit with care.
|