I started a project I call "ropen", which is like OS X's "open" or TextMate's "mate" commands, but works remotely by automatically mounting the remote filesystem locally using MacFuse's sshfs:
http://github.com/tlrobinson/ropen/tree/master
It works quite well, except when you try to open a large directory tree in TextMate. It seems like TextMate is trying to walk the entire tree immediately when it's opened. Doing this over the network is very slow and ends up hanging TextMate for moderately sized directory trees.
Is there any possibility of changing the behavior to lazily do whatever initialization TextMate needs to do when opening directories?
Thanks,
Tom
Some ideas to improve performance:
- instead of mounting the remote filesystem, rsync the files - you can then watch the local files for changes using a stakeout script (check this post: http://pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/StakingOutFileChanges.rdoc for a Ruby implementation of it) - when a file is saved, rsync it back to the server
Even then, I find the idea of remote editing of files quite disturbing : )
I think a much better approach is to spend the time you'd invest writing a tool like ropen in learning about rsync, svn / git / darcs / bzr, and taking a look at deploying tools like capistrano or vlad (they are not that hard to use, and once you experience the wonder that is rolling back your changes on a server you'll never want to go back to ssh-fs : )
Of course, that's just my .02. Feel free to ignore the fifth paragraph : )