This commit is contained in:
Joey Hess 2018-10-14 01:30:36 -04:00
parent 9f4587cc9a
commit 3181533fbc
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -0,0 +1,37 @@
[[!comment format=mdwn
username="joey"
subject="""comment 2"""
date="2018-10-14T05:08:18Z"
content="""
The blocker to implementing this in views (or adjusted branch) has been
how to efficiently update the tree after a get/drop. Doing it after every
file is certianly too slow and also would create lots of unused tree
objects in git that would linger until gced.
And less of a blocker, but still kind of a problem is, how to run `git
annex get` on a file if its symlink is hidden due to it not being available?
Occurred to me tonight that this could be done in `git annex sync --content`,
at the end. That way the tree update would only be done once, after however
many gets/drops. And sync could look at the original branch when finding
content to transfer, so would avoid the other problem too.
One of my use cases for wanting this is to use it on my phone, to load up
podcasts I want to listen to on a trip. One way I could do this is
to use metadata to tag those podcasts with a tag that is preferred content
for the phone. Then `sync --content` run on the phone
would download them, and update the visible tree.
The assistant could also update the visible tree at the end of a sync run.
Could `sync --content` cause an update of a remotes visible tree too?
It would need an addtion to the P2P protocol, but seems worth
doing for symmetry.
(For users who don't want to use sync but want to git-annex get/drop
manually, they could check out the real branch temporarily, run whatever
there, and then run a command to get back into the view where
missing files are hidden. Of course this could be slow when the repo has a
lot of files. Especially in v6 mode where checkout runs git-annex once per
file.)
"""]]