When upgrading a package, -t or --default-release works wonder:  ~  sudo apt-get install -t unstable libpam-gnome-keyringReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following packages will be upgraded:  libpam-gnome-keyring1 upgraded, 0 newly installed, 0 to remove and 376 not upgraded.Need to get 284 kB of archives.After this operation, 22.5 kB disk space will be freed.(Reading database ... 268717 files and directories currently installed.)Preparing to unpack .../libpam-gnome-keyring_3.12.0-2_i386.deb ...Unpacking libpam-gnome-keyring (3.12.0-2) over (3.8.2-2+b1) ...Setting up libpam-gnome-keyring (3.12.0-2) ...But when I try to use it to downgrade it doesn't at all:  ~  sudo apt-get install -t testing libpam-gnome-keyringReading package lists... DoneBuilding dependency tree       Reading state information... Donelibpam-gnome-keyring is already the newest version. ## Why???libpam-gnome-keyring set to manually installed.0 upgraded, 0 newly installed, 0 to remove and 25 not upgraded.The only way is to do it is using the package/target_release method:  ~  sudo apt-get install libpam-gnome-keyring/testingReading package lists... DoneBuilding dependency tree       Reading state information... DoneSelected version '3.8.2-2+b1' (Debian:testing [i386]) for 'libpam-gnome-keyring'The following packages will be DOWNGRADED:  libpam-gnome-keyring0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.Need to get 272 kB of archives.After this operation, 22.5 kB of additional disk space will be used.Do you want to continue? [Y/n] ydpkg: warning: downgrading libpam-gnome-keyring from 3.12.0-2 to 3.8.2-2+b1(Reading database ... 268716 files and directories currently installed.)Preparing to unpack .../libpam-gnome-keyring_3.8.2-2+b1_i386.deb ...Unpacking libpam-gnome-keyring (3.8.2-2+b1) over (3.12.0-2) ...Setting up libpam-gnome-keyring (3.8.2-2+b1) ...Why doesn't -t downgrade packages?
Why -t release don't downgrade the package while package/release does?
apt
The -t option just remove the pinning preferences of apt, and sets the selected release with a 990 priority, the equivalent to this:Package: *Pin: release a=testing # for testingPin-Priority: 900This priority isn't enough to force a package downgrade. To force a package downgrade you need 1000 or more priority for the release you are trying to downgrade to, or -1 or less on the package which version comes from the release that you want to remove.package/release does something totally different. It selects the latest version in the archive of the package, in case there's more than one, and install only that package. The equivalent to:apt-get download package=versiondpkg -i --force-downgrade package.debIn summary, both -t and package/release follow different procedure, and the only commands capable of downgrading packages from apt are the explicit version selectors: package=version and package/release.