Reputation: 67280
I'm trying to establish a best practice for Virtual Machines for developers. Currently we work on Windows 7 with Visual Studio 2008. However, we need to experiment with VS2010 and to do this we create Win7 VM's and load what we want in there.
My technique is to create a new VM, in this case a Win7 VM, and once it's gone through all it's updates etc. take a copy of it for the next time I need the same type of VM. I used one copy to test in and then eventually abandon or delete it once I've made it unstable enough and go back and make a copy of the original. However, I find that there were lots of small utilities and enhancements that I'd made to the previous working VM that I had never installed in the virgin VM and have to install all of those again.
I'm looking for a best practice in using VM's for software development.
Upvotes: 1
Views: 272
Reputation: 6916
VMWare has a great snapshot manager that lets you move non-destructively through a VM snapshots tree. You can take snapshot at point A and then advance the VM to point B (another snapshot), revert to A and advance to C (snapshot C). Then start a new sub-tree in a non-destructive manner at any of those points. You can also clone a VM and flatten multiple snapshots to a single snapshot as well as delete intermediate snapshots and prune branches on the tree.
It's very intelligent how it handles snapshots. I used Virtual Box when it only had linear destructive snapshot reversion -- I understand that VBox has improved but VMWare still has it beat for snapshot capabilities.
Also, if you're debugging in a VM, VMWare has extensions to record a VM's execution for debugging as well.
Upvotes: 3
Reputation: 340241
Given that you aren't able to keep things ordered and have a list of enhacements (the ideal thing to do IMO), why not simply have two VMs, one where you work, and the other 'virgin'. Then, when you or anybody else does an enhancement on your work VM, it has to be replicated on the 'virgin' VM. Next time you or anybody else installs a new copy of the VM, after some iterations you'll have the 'perfect virgin version'.
Upvotes: 1