Something I want to do for our development environment is to put Rails, and all our Gems, as well as other tools we use, all under version control. The way we do this now is to freeze Rails, and then put all the other stuff in a directory in our code repository and only install from there. I was wanting to freeze gems as well, but the way I understand this, it wouldn't work because it freezes what you have installed, which means it is platform dependent (assuming you have some gems that use native code). I need to support development, currently primarily on MacOS X, but also on Windows, and then various UNIX flavors such as Linux, BSD, and Solaris.
I'm curious what other folks are doing to ensure their versions of everything are correct for any point in their source code control? I also want to do this with non-Ruby technologies as well, so it's generic problem. Things like MySQL, DarwinPorts, and so on. The script I mentioned I want to write is aimed at handling much of this, but it'd be nice to have the actual "installed" variants in source control so you simply had to sync/update to latest and have everything except a few major bits (MySQL for example) guaranteed to be correct.