documentation for compute remote and associated commands

None of this is implemented yet.
This commit is contained in:
Joey Hess 2025-02-19 14:29:18 -04:00
parent ace9944d1c
commit b5319ec575
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
5 changed files with 209 additions and 1 deletions

View file

@ -0,0 +1,108 @@
# NAME
git-annex addcomputed - adds computed files to the repository
# SYNOPSIS
git annex addcomputed `--to=remote [--input name=file ...] [--value name=value ...] [--output name=file ...]`
git annex addcomputed `--describe=remote`
# DESCRIPTION
Adds files to the annex that are computed from input files and values,
using a compute special remote.
For example, this adds a file `foo.jpeg` to the repository. It is computed
by the "photoconv" compute remote, based on an input file, `foo.raw`. A
configurable "passes" value is set to 10 when computing the file.
git-annex addcomputed --to photoconv \
--input raw=foo.raw --output photo=foo.jpeg \
--value passes=10
There can be more than one input file that are combined to compute an
output file. And multiple output files can be computed at the same time.
The output files are added to the repository as annexed files.
Once a file has been added to a compute remote, commands
like `git-annex get` will use it to compute the content of the file.
It is also possible to use commands like `git-annex drop` on the file,
with the compute remote being counted as one copy of it.
# OPTIONS
* `--to=remote`
Specify which remote will compute the files.
This must be a compute remote. For example, one can be
initialized with:
git-annex initremote photoconv type=compute \
program=git-annex-compute-photoconv
For details about compute remotes, and a list of some
of the programs that are available, see
<https://git-annex.branchable.com/special_remotes/compute/>
* `--input name=file`
Provide a file as input to the computation, with the specified input name.
The input file can be an annexed file, or a file stored in git.
* `--output name=file`
Add the output of the computation to the repository as an annexed file,
with the specified filename.
* `--value name=value`
Provide a value to the computation, with the specified name.
* `--describe=remote`
Describe all inputs, outputs, and values supported by a compute remote.
For a machine-readable list, use this with `--json`.
* `--fast`
Adds computed files to the repository, without generating their content
yet.
* `--unreproducible`
Indicate that the computation is not expected to be fully reproducible.
It can vary, in ways that produce files that equivilant enough to
be interchangeable, but are not necessarily identical.
This is the default unless the compute remote indicates that it produces
reproducible output.
* `--reproducible`, `-r`
Indicate that the computation is expected to be fully reproducible.
This is the default when the compute remote indicates that it produces
reproducible output.
If a computation turns out not to be fully reproducible, then getting
the file from the compute remote will later fail with a checksum
verification error. One thing that can be done then is to use
`git-annex recompute --unreproducible`.
* Also the [[git-annex-common-options]](1) can be used.
# SEE ALSO
[[git-annex]](1)
[[git-annex-recompute]](1)
# AUTHOR
Joey Hess <id@joeyh.name>
Warning: Automatically converted into a man page by mdwn2man. Edit with care.

View file

@ -52,7 +52,7 @@ want to use `git annex renameremote`.
git annex initremote mys3 type=S3 --whatelse git annex initremote mys3 type=S3 --whatelse
For a machine-readable list of the parameters, use this with --json. For a machine-readable list of the parameters, use this with `--json`.
* `--fast` * `--fast`

View file

@ -0,0 +1,55 @@
# NAME
git-annex recompute - update computed files
# SYNOPSIS
git-annex recompute [path ...]`
# DESCRIPTION
This updates computed files that were added with
[[git-annex-addcomputed]](1).
By default, this only recomputes files whose input files have changed.
The new contents of the input files are used to re-run the computation,
and when the output is different, the updated computed file is staged
in the repository.
# OPTIONS
* `--unchanged`
Recompute files even when their input files have not changed.
* `--unreproducible`
Convert files that were added with `git-annex addcomputed --reproducible`
to be as if they were added without that option.
* `--reproducible`
Convert files that were added with `git-annex addcomputed --unreproducible`
to be as if they were added with `--reproducible`.
* matching options
The [[git-annex-matching-options]](1) can be used to control what
files to recompute.
For example, to only recompute files that are computed by the "photoconv"
compute remote, use `--in=photoconv`
* Also the [[git-annex-common-options]](1) can be used.
# SEE ALSO
[[git-annex]](1)
[[git-annex-addcomputed]](1)
# AUTHOR
Joey Hess <id@joeyh.name>
Warning: Automatically converted into a man page by mdwn2man. Edit with care.

View file

@ -186,6 +186,18 @@ content from the key-value store.
See [[git-annex-undo]](1) for details. See [[git-annex-undo]](1) for details.
* `addcomputed`
Adds computed files to the repository.
See [[git-annex-addcomputed]](1) for details.
* `recompute`
Recomputes computed files.
See [[git-annex-recompute]](1) for details.
* `multicast` * `multicast`
Multicast file distribution. Multicast file distribution.

View file

@ -0,0 +1,33 @@
While other remotes store the contents of annexed files somewhere,
this special remote uses a program to compute the contents of annexed
files.
To enable an instance of this special remote:
# git-annex initremote myremote type=compute program=git-annex-compute-foo
The `program` parameter is the only required parameter. It is the name of the
program to use to compute the contents of annexed files. It must start with
"git-annex-compute-". The program needs to be installed somewhere in the
`PATH`.
To add a file to a compute special remote, use the [[git-annex-addcomputed]]
command. Once a file has been added to a compute special remote, commands
like `git-annex get` will use it to compute the content of the file.
You can provide other parameters to `initremote`, in order to provide
default configuration values to use when adding files with
[[git-annex-addcomputed]]. To see a list of all the configuration values
supported by a given program, pass `--whatelse` to `initremote`:
# git-annex initremote myremote type=compute program=git-annex-compute-foo --whatelse
## compute programs
To write programs used by the compute special remote, see the
[[design/compute_special_remote_interface]].
Have you written a generally useful (and secure) compute program?
List it here!
* ...