
In the beginning there is a list of old snapshots, each one based on the previous one, and the newest one is the current root file system.

In the first step, a new snapshot of the current root file system will be created. This snapshot is set read write.

In the second step the snapshot will be updated. This can be zypper up or zypper dup, the installation or removal of a package or any other modification to the root file system.

In the third step the snapshot will be changed back to read-only, so that the data cannot be modified anymore.

The last step is to mark the updated snapshot as new root file system. This is the atomic step: If the power would have been pulled before, the unchanged old system would have been booted. Now the new, updated system will boot.

After reboot, the newly prepared snapshot is the new root file system. In case anything goes wrong a rollback to any of the older snapshots can be performed.

If the system is not rebooted and
transactional-update is called again a new
snapshot will be created and updated. This new snapshot is based
on the current running root filesystem again,
not on the new default snapshot!
For stacking changes (i.e. if several commands are supposed to be
combined in one single snapshot) the shell command
can be used to perform any number of operations, or the
--continue can be used to continue the latest
snapshot while preserving a separate snapshot for each step.