So annex is super cool and all. But there is one really annoying thing about it. The symlinks disrupt workflow really horribly! For example if I have a .psd file that is annex'd and I open that file in photoshop, edit it, then try to save it again. It doesn't allow me, because the actual file is the one deep in the annex sub structure that is read only. There a bunch of other annoyances like this. But you basically can't work with annex'd files without some additional struggle. But there is a solution to this. Just don't symlink the files that are active. I think potentially the simplest way to do this is to have a 'annex' and 'unannex' command. Or rather, a 'create symlink' and 'uncreate symlink' command. So then you can be going along, doing your work, nothing in your directory symlinked. You then type you 'annex symlink' command all priorly annexed filed will be deleted and replaced with their symlinks. Then you can add your new files to annex. Adding new files will just automatically symlink them unless you put like a -ns or something to signify to not symlink them. With all priorly annexed filed symlinked and all your new files symlinked, you then git commit and push. Then you do a git annex unsymlink command. And then all your symlinks are deleted and the actual file placed there. Then you just type git annex symlink again to re-symlink them all. > I think you are looking for the `unlock` and `add` (or `lock`) commands. Basically, to edit the file in photoshop, you want: > >
> git annex unlock file.psd
> photoshop file.psd # ...
> git annex add file.psd # if you are happy with your changes or...
> git annex lock file.psd # if you want to discard your changes
> 
> > So basically what you are asking for is already [[done]], in my mind. I still think there are significant [[usability issues|forum/usability:_what_are_those_arrow_things__63__/]] with symlinks, but that's another story. --[[anarcat]]