comment
This commit is contained in:
parent
92ca28c47b
commit
2a328dca8c
1 changed files with 55 additions and 0 deletions
|
@ -0,0 +1,55 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="joey"
|
||||||
|
subject="""comment 1"""
|
||||||
|
date="2021-07-06T13:47:31Z"
|
||||||
|
content="""
|
||||||
|
I don't like the idea much. Keys with extensions are really a hack to work
|
||||||
|
around the limitations of certian programs, and adding this feature would
|
||||||
|
make it harder to deprecate them, which is a long term goal. Though
|
||||||
|
admittedly not a likely one to be achieved entirely, it certianly seems possible
|
||||||
|
right now for git-annex to eventually default to a non-extension backend..
|
||||||
|
And adding this feature would work against that.
|
||||||
|
|
||||||
|
But.. After recent changes, it would be perfectly possible for include= to match
|
||||||
|
on filenames in the current branch when used with --all etc. I'll copy some
|
||||||
|
thoughts on it from
|
||||||
|
<https://git-annex.branchable.com/todo/option_to___96__drop_path__96___to_not_drop___34__all_copies__34__/>:
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
I'm feeling a bit cautious about adding a preferred content expression for
|
||||||
|
this brand new capability.
|
||||||
|
|
||||||
|
And also unfortunately, it turned out not to be possible to prevent the
|
||||||
|
associated files db from sometimes having stale filenames in it (see
|
||||||
|
[[!commit c1b50282118520350d5328153fceedac2b8d8ed5]]). Which all current
|
||||||
|
uses of the associated files db deal with by checking the list of
|
||||||
|
associated files to see if all of them are in HEAD tree. A preferred
|
||||||
|
content expression would also have to deal with that, and that risks
|
||||||
|
slowing down evaluation of preferred content expressions generally.
|
||||||
|
|
||||||
|
So I think it's best to not add a preferred content expression,
|
||||||
|
at least until there's a use case and this has had
|
||||||
|
some time to soak.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Although as far as slow down goes, that would only need to affect cases
|
||||||
|
where --all/--key/--unused is used, and preferred content matches on
|
||||||
|
include=/exclude=. Which is a combination noone should be using now,
|
||||||
|
since it doesn't match on anything. So a slow down is not a problem.
|
||||||
|
|
||||||
|
When those options are not used, include=/exclude= could skip looking
|
||||||
|
at the associated files db. Consider `git-annex get --auto .` -- If the
|
||||||
|
preferred content expression matches foo and not bar, and they have the same
|
||||||
|
content, it will not get bar, but will get foo, which has the desired result.
|
||||||
|
And it's ok for `git annex get --auto bar` to not get the content of foo;
|
||||||
|
the user didn't request it. And in the case of `git-annex drop --auto bar`,
|
||||||
|
the preferred content expression not matching bar doesn't matter, because
|
||||||
|
dropping checks if other files using the content are preferred content
|
||||||
|
and so would skip dropping bar in order not to drop foo.
|
||||||
|
|
||||||
|
So this would only need a way for preferred content matching to know if
|
||||||
|
an option like --all was used, and check the keys database then.
|
||||||
|
I think it could probably just check for `providedFilePath == Nothing`
|
||||||
|
"""]]
|
Loading…
Reference in a new issue