How to reverse '-proposed' channel package upgrade?

I have an Ubuntu GNOME 16.04 with GNOME 3.18 64-bit VM, and in that VM I needed to test something in the xenial-proposed channel so I activated it in the software-properties-gtk, ran sudo apt-get update && sudo apt-get dist-upgrade and installed all the upgrades from the xenial-proposed channel as I couldn't find a way to get it just to upgrade the package I needed.

Now however I wish to downgrade all the packaged upgraded to their xenial-proposed versions to their version in the stable/normal channels, but how can this be achieved? Can I use ppa-purge to do this? And if so, how?

If I just disable the xenial-proposed channel via the same means that I enabled it will the packaged installed and upgraded to their xenial-proposed versions start to receive updates again from the stable/normal channels once the version numbers there are higher than the installed or will I receive no updates at all then until I enable the xenial-proposed channel again?


Adapting http://www.webupd8.org/2013/11/how-to-downgrade-proposed-repository.html and https://wiki.ubuntu.com/Testing/EnableProposed, the packages installed from the xenial-proposed repository can be downgraded by doing the following (replace xenialwith the codename of whichever release you are using):

  1. Disable the xenial-proposed repository in software-properties-gtk as you have suggested.
  2. In /etc/apt/preferences.d, create a file named 99-downgrade-proposed.
  3. Copy and paste the following lines into the file:

    Package: *
    Pin: release a=xenial
    Pin-Priority: 1001
    
    Package: *
    Pin: release a=xenial-updates
    Pin-Priority: 1001
    
    Package: *
    Pin: release a=xenial-security
    Pin-Priority: 1001
    
    Package: *
    Pin: release a=xenial-backports
    Pin-Priority: 1001
    
    Package: *
    Pin: release a=xenial-proposed
    Pin-Priority: -1
    
  4. Run sudo apt update followed by sudo apt full-upgrade.

  5. Delete the file by running sudo rm /etc/apt/preferences.d/99-downgrade-proposed.

  1. Save a list of packages currently installed from the proposed suite:

    aptitude -F '%p' search "?narrow(?installed, ?archive($(lsb_release -sc)-proposed))" > /path/to/proposed-packages.txt
    

    Attention: Make sure that the resulting file size in bytes is well below 128 KiB or you’re likely going to run into issues in step 4.

  2. Disable the proposed repository suite. If you don't know how, see How do I add the "proposed" repository? and do the reverse.

  3. Update the local package index:

    sudo apt-get update
    
  4. Coerce all packages from the list from step 1 to the most recent known version for the current release:

    xargs -x -r -d '\n' -a /path/to/proposed-packages.txt -- sudo apt-get install -f -t "$(lsb_release -sc)" --
    

    After the removal of the repositories for the proposed suite and the package index update the most recent known package versions will be from updates, security, or the “bare” suite for your release depending on which other suite(s) you have enabled and what they contain.

P.S.: The above instructions are analogous to those of the removal of the backports suite and the down-grade of all its installed packages. Simply replace all instances of proposed with backports.