comment
This commit is contained in:
parent
128ecac047
commit
0cb3bcbcb5
1 changed files with 46 additions and 0 deletions
|
@ -0,0 +1,46 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 3"""
|
||||
date="2020-01-06T18:53:02Z"
|
||||
content="""
|
||||
Thanks for digging that up.
|
||||
|
||||
Hmm, if the goal was to check each command for such problems when adding
|
||||
--batch, it didn't stop `git-annex add --batch` from being added, despite
|
||||
indeed having such a buffering behavior. You can currently shoot your foot
|
||||
combining that with `git annex readpresentkey --batch`, the same way as you
|
||||
could with a hypothetical universal batch mode that let you run add
|
||||
followed by readpresentkey.
|
||||
|
||||
I don't see a universal batch mode being really able to detect
|
||||
and avoid such problems either. How is it supposed to know that an add of
|
||||
"dir/" will amoung other things add the content of key FOO, which was not
|
||||
present before, and so a readpresentkey FOO should be delayed until after
|
||||
the add, and the add's buffer flushed. It would have to model the
|
||||
behavior of commands and insert barriers/flush points, and the modeling
|
||||
could necessarily not be that fine-grained, so it would need to flush
|
||||
the add buffer every time before readpresentkey. But there are surely
|
||||
ways to combine batch use of add and readpresentkey that you know won't be
|
||||
affected by the add buffering, and that would make those unncessarily slow.
|
||||
|
||||
Anyway, looking at the implementation of --batch for different commands,
|
||||
sometimes it's trivial enough to wish it were generalized, but other times
|
||||
there is batch-specific behavior. `add --batch` errors out if --update
|
||||
is also used. `checkpresentkey --batch` outputs status codes rather than
|
||||
the command's normal behavior of exiting 1/0. So we need batch-specific
|
||||
implementations.
|
||||
|
||||
---
|
||||
|
||||
idea: What might be good is a mode that lets any batch-capable commands
|
||||
be combined together, not trying to support every possible command, and
|
||||
perhaps with some added commands that the user can use to flush buffers
|
||||
etc between operations as desired. Eg:
|
||||
|
||||
git annex batch <<EOF
|
||||
add dir/
|
||||
add whatever
|
||||
flush
|
||||
readpresentkey FOO
|
||||
EOF
|
||||
"""]]
|
Loading…
Add table
Reference in a new issue