Downgrading to an earlier Debian branch

The best (albeit hyper-condensed) answer is given in the #debian IRC channel FAQ at

Q: Can I downgrade, like unstable->testing, testing->stable or unstable->stable?

A: It's not possible with apt-get at the moment and probably never will be supported because why would you want to downgrade in the first place?
Addendum from This is not true, with pinning one can easily downgrade (I successfully did it once, from unstable to stable). One uses negative pin-numbers to uninstall/downgrade (cf. man sources.list and google "apt-get pinning").

Discussion from the debian-devel mailing list and the Debian Planet Web site follows:

Package: e2fsprogs
Pin: release a=testing
Pin-Priority: 1002

This should enable me to continuously in-sync with testing for these programs. If you do not need update, just do not run "update". But at the same time, keeping mixed system tends to pull libc6 update etc. into system. Sometimes, it is not desired. So think about recompile those packages if possible.

In my previous experiences, libc6 and its friends always needed to be updated if any newer packages needed to be installed to the system. Also, Perl and Bash needed to be newer to support some newer packages in stable/testing mixed environment during the days of potato/woody. Sometimes newer kernel requires new gcc and its friends too.

FYI: I have been conservative on upgrading daemon programs while aggressive on end-user gui application. Also security issues using testing or unstable needs to be reminded for the folks who use those programs in testing and unstable.

Happy life with Debian.