At long last there's a way to hide annexed files whose content
is missing from the working tree: git-annex adjust --hide-missing
And once you've run that command, git annex sync
will update the tree
to hide/unhide files whose content availability has changed.
(So will running git annex adjust
again with the same options.)
You can also combine --hide-missing
with --unlock
, which should prove
useful in a lot of situations.
My implementation today is as simple as possible, which means that every time it updates the adjusted branch it does a full traversal of the original branch, checks content availability, and generates a new branch. So it may not be super fast in a large repo, but I was able to implement it in one day's work. It should be possible later to speed it up a lot, by maintaining more state.
Today's work was sponsored by Ethan Aubin.