git-annex/doc/todo/better_way_to_get_missing_files.mdwn
Joey Hess 4a6ebb1034
make sync update adjusted branch to hide/unhide
This completes initial support for --hide-missing, although the
assistant still needs to be updated and it perhaps needs to be sped up,
and maybe there needs to be a way for git-annex get to operate on
missing files. Opened some more todos for those things.

This commit was sponsored by Henrik Riomar.
2018-10-20 14:22:28 -04:00

34 lines
1.5 KiB
Markdown

Currently in a `git annex adjust --hide-missing` branch, the only way to
get missing files is to run `git annex sync --content`, with appropriate preferred
content settings or with `-C path` to get a specific path. This is kind of
klunky for ad-hoc getting files.
It would be possible to make `git annex get`, `git annex copy --from remote`, etc
operate on hidden files. Some of the infrastructure is there; it may be as
simple as using LsFiles.inRepoOrBranch instead of LsFiles.inRepo to seek
the files.
Two open questions:
* Would it make more sense for this to be the default behavior when in the
adjusted branch, or for it to be an option, like "--branch=master"?
One advantage to the latter is that it would also be usable in bare
repos, or if you just for some reason want to get files present in some
other branch than the current one.
The former might be easier, but it could also be kind of surprising.
`git annex get .` would download tons of files, which `ls` doesn't
display.
Of course, both things could be supported too.
* After getting the files, they'll still be hidden until the branch is
updated to include them. When should that happen?
The current method of re-running `git annex adjust --hide-missing` will
expose them, but the way that works is probably too slow to run after
every command. Even if it were fast, it would generate a lot of dangling
objects over time. So leave the update up to the user to run the command
when they want it? But then the user may get confused, why did it
download files and they didn't appear?