Technically a rollback makes a new writable snapshot initialized from the target snapshot and then sets that new writable snapshot as the default. (It also creates a read-only snapshot of the previous state in case you want to rollback the rollback to create maximum confusion.)
The easiest way to do a rollback is by selecting the snapshot you want from the boot screen for read-only booting. Then when the system is up and running the command is simply
sudo snapper rollback
followed by rebooting.
In my opinion, every proud owner of a system with snapper integration should practice this procedure at least once because it is so much easier than the traditional way of e.g. fixing driver issues by reinstalling the driver, realizing that it doesn’t work, reinstalling other stuff, realizing that it still doesn’t work, trying dracut --force --regenerate-all
because why not, followed by the ignominy of a full reinstall.
undochange
is sometimes useful when you started with a manual change and then realize that you, uh, want to undo your half-baked edit. I would never use it to fix a bad dist-upgrade. For example
$ snapper create --type=pre --print-number --cleanup-algorithm number --userdata 'important=no' --description testing
453
$ echo 42 > /etc/the_answer
$ snapper status 453..0
+..... /etc/the_answer
$ snapper undochange 453..0
create:0 modify:0 delete:1
$ cat /etc/the_answer
cat: /etc/the_answer: No such file or directory
$ snapper remove 453