I've been using Virtual PC to create a common development environment to take with me when I travel.  It is nice to have VS.NET set up in a VM with macros and preferences customized to me.  I also have editors and (licensed) third-party components installed so I always have them. I take a copy of it with me at customer sites and it I don't have to spend time setting up.   The way it configured now is that all my office apps are on the host machine and then I have a “pure” development environment inside the VM.

The issue I’m grappling with is how to keep everything in sync.  For example, if I go on the road and make modification to code, documents, etc.; how do I update everything back on my workstation at home?  I have to update any documents on the host plus any changes in the VM. 

My thought here is to keep nothing on the VM and all files including Visual Studio projects on the host.  When I build a project, the build output would go inside the VM to avoid executing over networked drive. (I do notice a slowdown in VS.NET when opening projects over a shared drive to the host.)  I can then use something like Intellimirror to copy the updates to other machines. 

I'm looking for any suggestions on this.  I'm willing to make a time investment because a good solution will safe a ton of time in the long run.  Anyone have a good solution for this?