update
This commit is contained in:
parent
24d5dbe30b
commit
4f0e64b6de
1 changed files with 36 additions and 6 deletions
|
@ -4,8 +4,10 @@
|
||||||
date="2025-01-28T14:06:41Z"
|
date="2025-01-28T14:06:41Z"
|
||||||
content="""
|
content="""
|
||||||
Using metadata to store the inputs of computations like I did in my example
|
Using metadata to store the inputs of computations like I did in my example
|
||||||
above also seems that it would allow the metadata to be changed, which
|
above seems that it would allow the metadata to be changed later, which
|
||||||
would change the output when a key gets recomputed.
|
would change the output when a key gets recomputed. That feels surprising,
|
||||||
|
because metadata could be changed for any reason, without the intention
|
||||||
|
of affecting a compute special remote.
|
||||||
|
|
||||||
It might be possible for git-annex to pin down the current state of
|
It might be possible for git-annex to pin down the current state of
|
||||||
metadata (or the whole git-annex branch) and provide the same input to the
|
metadata (or the whole git-annex branch) and provide the same input to the
|
||||||
|
@ -19,7 +21,7 @@ per-special-remote state of the generated key. Or the input values could be
|
||||||
encoded in the key itself, but then two computations that generate the same
|
encoded in the key itself, but then two computations that generate the same
|
||||||
output would have two different keys, rather than hashing to the same key.
|
output would have two different keys, rather than hashing to the same key.
|
||||||
|
|
||||||
And using a key with a regular hash backend lets the user find out if the
|
Using a key with a regular hash backend also lets the user find out if the
|
||||||
computation turns out to not be reproducible later for whatever reason;
|
computation turns out to not be reproducible later for whatever reason;
|
||||||
getting the file from the compute special remote will fail at hash
|
getting the file from the compute special remote will fail at hash
|
||||||
verification time. Something like a VURL key could still alternatively be
|
verification time. Something like a VURL key could still alternatively be
|
||||||
|
@ -29,11 +31,39 @@ To add a computed file, the interface would look close to the same,
|
||||||
but now the --value options are setting fields in the compute special
|
but now the --value options are setting fields in the compute special
|
||||||
remote's state:
|
remote's state:
|
||||||
|
|
||||||
git-annex addcomputed foo --to ffmpeg-cut
|
git-annex addcomputed foo --to ffmpeg-cut \
|
||||||
--input source=input.mov
|
--input source=input.mov \
|
||||||
--value starttime=15:00
|
--value starttime=15:00 \
|
||||||
--value endtime=30:00
|
--value endtime=30:00
|
||||||
|
|
||||||
The values could be provided to the "git-annex-compute-" program with
|
The values could be provided to the "git-annex-compute-" program with
|
||||||
environment variables.
|
environment variables.
|
||||||
|
|
||||||
|
For `--input source=foo`, it could look up the git-annex key (or git sha1)
|
||||||
|
of that file, and store that in the state. So it would provide the compute
|
||||||
|
program with the same data every time. But it could *also* store the
|
||||||
|
filename. And that allows for a command like this:
|
||||||
|
|
||||||
|
git-annex recompute foo --from ffmpeg-cut
|
||||||
|
|
||||||
|
Which, when the input.mov file has been changed, would re-run the
|
||||||
|
computation with the new content of the file, and stage a new version of
|
||||||
|
the computed file. It could even be used to recompute every file in a tree:
|
||||||
|
|
||||||
|
git-annex recompute . --from ffmpeg-cut
|
||||||
|
|
||||||
|
Also, that command could let input values be adjusted later:
|
||||||
|
|
||||||
|
git-annex recompute foo --from ffmpeg-cut --value starttime=14:50
|
||||||
|
git commit -m 'include the introduction of the speaker in the clip'
|
||||||
|
|
||||||
|
It would also be good to have a command that examines a computed key
|
||||||
|
and displays the values and inputs. Eg:
|
||||||
|
|
||||||
|
git-annex examinecompute foo --from ffmpeg-cut
|
||||||
|
source=input.mov (annex key SHA256--xxxxxxxxx)
|
||||||
|
starttime=15:00
|
||||||
|
endtime=30:00
|
||||||
|
|
||||||
|
This feels like it might allow for some useful workflows...
|
||||||
"""]]
|
"""]]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue