Debian always has at least three releases in active maintenance: stable, testing and unstable.
There are other criterion
The current (at time of writing) stable distribution of Debian is 3.1, codenamed sarge. It was released on June 6th, 2005. Check http://www.debian.org/releases/ to ensure it is still current, and if not, come back and edit the wiki so it is. The current testing distribution is etch. Eventually, etch will become stable (a FeatureFreeze will occur), sarge will become an unsupported older distribution, and the testing tree will be reborn with a new name.
On a debian machine, you can find out the version number of the installed distribution by looking in /etc/debian_version.
Previous versions of stable have been named "woody", (debian version 3.0, 2002), "potato" (v2.2, 2000), "slink" (v 2.1, 1999) "hamm" (v2.0, 1998), "bo" (v1.3, 1997), "rex" (v1.2, 1996), and "buzz" (v1.1, 1996).
The unstable distribution is called sid, and it doesn't get renamed.
The code names come from the movie Toy Story, because ex-Debian project leader BrucePerens used to work for Pixar. (He went on to become HP's Linux evangelist, but was allegedly fired by HP for "microsoft-baiting".)
Packages are installed into the `testing' directory after they have undergone some degree of testing in unstable. They must be in sync on all architectures where they have been built and must not have dependencies that make them uninstallable; they also have to have fewer release-critical bugs than the versions currently in testing. This way, they ensure (hope) that testing is always close to being a release candidate.
If you would like to use packages from a different release to what you are currently running (ie. you want to install the latest nasm package from unstable, but you like to run the rest of your machine on stable) follow these steps.
Install packages with:
Some notes on the above.
And this prompts a question unanswered everywhere I have looked: When etch becomes "stable" how will I prevent my regular and automated executing of "apt-get dist-upgrade" updating all my packages to etch? How does one configure apt to stay with sarge given that default-release "sarge" does not work? It seems the way is this: Do not set default-release. In sources.list do not mention stable or testing but sarge and etch instead. In preferences pin 500 > sarge > stable > etch > testing > 100. Then when packages in etch becomes marked stable packages in sarge, also still stable, presumably will still be preferred. Does that work?
7 pages link to FlavoursOfDebian: