Today I revisited something from way back in day 7 bugfixes. Back then, it wasn't practical to run git ls-files on every file the watcher noticed, to check if it was already in git. Revisiting this, I found I could efficiently do that check at the same point it checks lsof. When there's a lot of files being added, they're batched up at that point, so it won't be calling git ls-files repeatedly.

Result: It's safe to mix use of the assistant with files stored in git in the normal way. And it's safe to mix use of git annex unlock with the assistant; it won't immediately re-lock files. Yay!


Also fixed a crash in the committer, and made git annex status display repository groups.


Been thinking through where to store the transfer control expressions. Since repositories need to know about the transfer controls of other remotes, storing them in .git/config isn't right. I thought it might be nice to configure the expressions in .gitattributes, but it seems the file format doesn't allow complicated multi-word attributes. Instead, they'll be stored in the git-annex branch.