diff --git a/doc/git-annex-addcomputed.mdwn b/doc/git-annex-addcomputed.mdwn new file mode 100644 index 0000000000..395d6246e7 --- /dev/null +++ b/doc/git-annex-addcomputed.mdwn @@ -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 + + +* `--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 + +Warning: Automatically converted into a man page by mdwn2man. Edit with care. diff --git a/doc/git-annex-initremote.mdwn b/doc/git-annex-initremote.mdwn index 0e4514e823..bcb3494b7f 100644 --- a/doc/git-annex-initremote.mdwn +++ b/doc/git-annex-initremote.mdwn @@ -52,7 +52,7 @@ want to use `git annex renameremote`. 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` diff --git a/doc/git-annex-recompute.mdwn b/doc/git-annex-recompute.mdwn new file mode 100644 index 0000000000..c86173c2eb --- /dev/null +++ b/doc/git-annex-recompute.mdwn @@ -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 + +Warning: Automatically converted into a man page by mdwn2man. Edit with care. diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn index 620aee61cd..85dda2b223 100644 --- a/doc/git-annex.mdwn +++ b/doc/git-annex.mdwn @@ -186,6 +186,18 @@ content from the key-value store. 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 file distribution. diff --git a/doc/special_remotes/compute.mdwn b/doc/special_remotes/compute.mdwn new file mode 100644 index 0000000000..b840f5fcbe --- /dev/null +++ b/doc/special_remotes/compute.mdwn @@ -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! + +* ...