For most professional environments you should have EVERYTHING necessary to recover the system.
If you are only storing the build system itself you can test it easily enough:
- Start a clean install of the OS.
- Install the repository client.
- Sync. (This can be in a separate branch within the system)
- Disconnect from the network (just to make sure you aren't relying on something remotely)
- Run the build script with a single button click or single batch file, and no other options.
- Game should build completely without human intervention.
Note that this does NOT include things like "install the IDE", or "Install photoshop". All the executables and compilers and libraries and other neccessary items should be directly available within the tree.
There are also strong arguments for including copies of the tools necessary for creating and editing any binary file. For example, your art modeling tools. There is typically very little difference between keeping the install discs on a network location that is archived or in a versioning system that is also archived. This applies for all software, including Photoshop and Visual Studio, all the way to the versioning system tools themselves.
Since these files are not necessary for the build, you can give them a separate install script.
With that in place, you can rebuild any type of machine with:
- Start a clean install of the OS.
- Install the repository client.
- Sync. (The install tools can be in a separate branch so they aren't on all machines all the time.)
- Disconnect from the network (just to make sure you aren't relying on something remotely)
- Use a single batch file like InstallEngineer or InstallAritist or InstallBuildMachine.
- After pressing no other buttons, your machine should churn and run install scripts and soon be ready for use
If you can't do single-click install or a single-click build, then you have too much room for error when you need to recover your project years from now.