The official instructions say to do this (with the caveat that it will take a while and may fail):
$ sudo sed -i 's/saucy/trusty/' /etc/apt/sources.list
$ sudo sed -i 's/petra/qiana/' /etc/apt/sources.list
$ sudo sed -i 's/saucy/trusty/' /etc/apt/sources.list.d/official-package-repositories.list
$ sudo sed -i 's/petra/qiana/' /etc/apt/sources.list.d/official-package-repositories.list
$ sudo apt-get update && sudo apt-get dist-upgrade
$ sudo apt-get upgrade

And in fact, it is slow, and there will be errors. But it’s not hopeless. Another post gave some detailed tips and also recommended doing the apt-get instructions separately (which I also figured out was a better idea). Basically run each one until it completes without an error. When you do get an error, there might be a message telling you how to fix it – but that message might also be further up in the buffer, not the last thing it ends with. Often, it will be simply installing a missing component by itself, and running
$ sudo apt-get install -f
to fix missing dependencies.

In all, I ran update && dist-upgrade twice. The first time it failed, I found the fix in the earlier errors:
gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache [failed - libgdk wasn't installed]
apt-get install libgdk-pixbuf2.0-dev
apt-get -f install [fix broken dependencies]
locale-gen --purge --no-archive [fix UTF8 cache - I use multiple languages]
apt-get -f install [finally fix the dependencies]
apt-get install libgdk-pixbuf2.0-dev [install the component]
gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache [run the actual command to fix the update]

Another error on “engrampa_1.8.0-0+qiana_amd64.deb” — but not finding any obvious fix, I ran

apt-get update

by itself and also selected the options to allow it to restart services and always install the new config file (Y/I)

and then

apt-get dist-upgrade

completed without errors. And finally:

apt-get upgrade

That one ran fairly quickly. The only bit that’s messed up is my grub menu…