Ever since the direct mode guard was added a year ago, direct mode has been a lot safer to use, but very limited in the git commands that could be run in a direct mode repository.
The worst limitation was that there was no way to
git revert unwanted
changes. But also, there was no way to check out different branches,
or run commands like
Today I made
git annex proxy, which allows doing all of those things,
and more. documentation here
It's so flexible that I'm not sure where the boundries lie yet, but it seems it will work for any git command that updates both the work tree and the index. Some git commands only update one or the other and not both and won't work with the proxy. As an advanced user tool, I think this is a great solution. I still want to make a simplerthat can nicely integrate into file managers.
The implementation of
git annex proxy is
quite simple, because it
reuses all the complicated work tree update code that was already written
git annex merge.
And here's the lede I buried: I've gotten two years of funding to work on git-annex part-time! Details in my personal blog.