many recompute improvements

I've lost track of them all, but it includes:

* Using the same key backend as was used in the original computation.
* Fixing bug that prevented updating the source file key in the compute
  state
* Handling --reproducible and --unreproducible.
* recompute --original of a file using VURL, when the result is
  different, but the key remains the same, makes the object file
  be updated with the new content
* Detecting some other ways the program behavior can change, just for
  completeness.
* Also adds --backend to addcomputed.
This commit is contained in:
Joey Hess 2025-02-27 15:12:29 -04:00
parent 1704b5e327
commit e6ae5e8d56
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
6 changed files with 127 additions and 54 deletions

View file

@ -82,6 +82,10 @@ the parameters provided to `git-annex addcomputed`.
checksum verification error. One thing that can be done then is to use
`git-annex recompute --original --unreproducible`.
* `--backend`
Specifies which key-value backend to use.
* Also the [[git-annex-common-options]](1) can be used.
# SEE ALSO

View file

@ -21,17 +21,7 @@ updated with the new content.
* `--original`
Use the original content of input files.
* `--unreproducible`, `-u`
Convert files that were added with `git-annex addcomputed --reproducible`
to be as if they were added without that option.
* `--reproducible`, `-r`
Convert files that were added with `git-annex addcomputed --unreproducible`
to be as if they were added with `--reproducible`.
Re-run the computation with the original input files.
* `--remote=name`
@ -42,6 +32,22 @@ updated with the new content.
a file can be computed by multiple remotes, the one with the lowest
configured cost will be used.
* `--unreproducible`, `-u`
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.
* matching options
The [[git-annex-matching-options]](1) can be used to control what