I've been thinking about virtualizing part or all of my RoR development environment.
This could have, in theory, many advantages due to encapsulation
- easily manage app-specific configurations
- sandboxing gems and plugins dependencies
- cross-platform
- plug 'n play
- virtualization commodities, like snapshots and so on
- separation of concerns through several appliances for the different development phases (development, testing, staging etc)
However, in practice, my first tryout really borked my workflow. My ubuntu box was running a headless VM ubuntu server, which I sshed into pretty much like you'd work off the cloud, but had local access to the source files, and edit in gVim from the host (obviously).
My problems were mainly due to editing the source from the host, and trying to rely on the guest for all things ruby, which rails.vim didn't like for example. Even though I've been hinted at some possible workarounds for this particular vim issue, it still is pretty cumbersome as it is.
An alternative would be to run a full blown guest os, and edit the source from in there, but that doesn't really appeal to me somehow.
I haven't even tried to throw cvs into the mix yet, but i can foresee that as being yet another source of headaches, that would make this setup unwieldy and pretty much defeat the purpose.
So I've yet to find a workable solution.
Have you tried to virtualize part or all of your development environment and managed not to impair your workflow, productivity or environment's friendliness, or better yet, improved it ?