aa0350ff49
* view: New field?=glob and ?tag syntax that includes a directory "_" in the view for files that do not have the specified metadata set. * Added annex.viewunsetdirectory git config to change the name of the "_" directory in a view. When in a view using the new syntax, old git-annex will fail to parse the view log. It errors with "Not in a view.", which is not ideal. But that only affects view commands. annex.viewunsetdirectory is included in the View for a couple of reasons. One is to avoid needing to warn the user that it should not be changed when in a view, since that would confuse git-annex. Another reason is that it helped with plumbing the value through to some pure functions. annex.viewunsetdirectory is actually mangled the same as any other view directory. So if it's configured to something like "N/A", there won't be multiple levels of directories, which would also confuse git-annex. Sponsored-By: Jack Hill on Patreon
69 lines
2.2 KiB
Markdown
69 lines
2.2 KiB
Markdown
# NAME
|
|
|
|
git-annex view - enter a view branch
|
|
|
|
# SYNOPSIS
|
|
|
|
git annex view `[tag ...] [field=value ...] [field=glob ...] [?tag ...] [field?=glob] [!tag ...] [field!=value ...]`
|
|
|
|
# DESCRIPTION
|
|
|
|
Uses metadata to build a view branch of the files in the current branch,
|
|
and checks out the view branch. Only files in the current branch whose
|
|
metadata matches all the specified field values and tags will be
|
|
shown in the view.
|
|
|
|
Multiple values for a metadata field can be specified, either by using
|
|
a glob (`field="*"`) or by listing each wanted value. The resulting view
|
|
will put files in subdirectories according to the value of their fields.
|
|
|
|
Once within such a view, you can make additional directories, and
|
|
copy or move files into them. When you commit, the metadata will
|
|
be updated to correspond to your changes. Deleting files and committing
|
|
also updates the metadata.
|
|
|
|
As well as the usual metadata, there are fields available corresponding
|
|
to the path to the file. So a file "foo/bar/baz/file" has fields "/=foo",
|
|
"foo/=bar", and "foo/bar/=baz". These location fields can be used the
|
|
same as other metadata to construct the view.
|
|
|
|
For example, `/=foo` will only include files from the foo
|
|
directory in the view, while `foo/=*` will preserve the
|
|
subdirectories of the foo directory in the view.
|
|
|
|
To enter a view containing only files that lack a given metadata
|
|
value or tag, specify field!=value or !tag. (Globs cannot be used here.)
|
|
|
|
`field?=*` is like `field=*` but adds an additional directory named `_` (by
|
|
default) that contains files that do not have the field set to any value.
|
|
Similarly, `?tag` adds an additional directory named `_` that contains
|
|
files that do not have any tags set. Moving files from the `_` directory to
|
|
another directory and committing will set the metadata. And moving files
|
|
into the `_` directory and committing will unset the metadata.
|
|
|
|
The name of the `_` directory can be changed using the annex.viewunsetdirectory
|
|
git config.
|
|
|
|
# OPTIONS
|
|
|
|
* The [[git-annex-common-options]](1) can be used.
|
|
|
|
# SEE ALSO
|
|
|
|
[[git-annex]](1)
|
|
|
|
[[git-annex-metadata]](1)
|
|
|
|
[[git-annex-vpop]](1)
|
|
|
|
[[git-annex-vfilter]](1)
|
|
|
|
[[git-annex-vadd]](1)
|
|
|
|
[[git-annex-vcycle]](1)
|
|
|
|
# AUTHOR
|
|
|
|
Joey Hess <id@joeyh.name>
|
|
|
|
Warning: Automatically converted into a man page by mdwn2man. Edit with care.
|