upgrade "is used to install the newest versions of all packages currently installed".
dist-upgrade "in addition to performing the function of upgrade, also intelligently handles changing dependencies with new versions of packages"
I searched for several definitions of dist-upgrade on the Internet and I found that it is used when new dependencies (not already installed) have to be installed, although that is not what
man apt-get definition says, as I understand.
I always find man pages to be very precise, but I don't understand what 'changing dependencies with new versions of packages' exactly means in the dist-upgrade definition. Does it mean that dependencies are changed for new versions of the same dependencies? Does 'changed' mean that one dependency is removed and another one installed, or simply that a new version of the same dependency is now installed and used instead of the version replaced? Doesn't upgrade already install new versions of dependencies and 'tell somehow' that the package must use this new dependencies?
Supposing that package A depends upon a file X inside a package B (the dependency): When upgrade installs a newer version of package B, called package B-2, is this newly dependency used by package A or is it that A still uses package B until dist-upgrade is executed ?