Is it possible to automatically make check-outs from any VCS?
Let's take a web development environment, where developers checkout a project onto their local machines, work on it, and check in changes to development. These changes are further tested on development and moved live on a regular schedule (eg weekly, monthly, etc.). Is it possible to have an auto-moveup of the latest tagged version (and not the latest checkin, as that might not be 100% stable), for example 8AM on Monday mornings, either using a script or a built-in feature of the VCS?
Certainly, but the exact product may be dependent upon the VCS you are using.
What you might want to do, is have a a few different branches, and migrate up as you progress. E.g., Development -> Stable-Dev -> Beta -> Production. You can then simply auto-update to the latest version of Stable-Dev and Beta for your testers, and always be able to deploy a new Production version at the drop of a hat.
Yes, it is possible. This is usually a feature provided by continuous integration tools. Typically they will get the latest source from version control, build the project, test it (running unit tests) and possibly deploy it on a (test) server.
If you don't require all those steps, you can easily do the same thing with some shell scripting or similar (i.e. checkout from version control and copy to the production folder on the server).
Anything you can do with cvs can be done with the command line, and I am pretty sure svn is the same. Just work out the functionality you want and stick it in a shell script or a command file.
The only two I have experience with are SVN and Mercurial. For Mercurial, you specify which branch you want it to update from (let's say default) and then whenever you merge a branch into default, you can just have the server run:
Which updates your repository to the latest version of the branch you set it to.
SVN is the same concept, you only check out which branch you want initially
svn co <http://host/repository/branchname/>
then you have your server update that with a cron job, ala
In theory though, any VCS that supports branching (all the good ones do : git, mercurial, SVN, etc...), should be able to do something similar to this.