pub const INSTALL_LONG: &str = "\
Move this installation from one package manager to another.
`devp update` always upgrades the copy that is running, through whichever channel \
installed it. This command changes *which* channel owns it: it installs through the \
manager you name, then removes the old copy through the manager that put it there — in \
that order, so a failed install leaves the working copy untouched.
Removing the old copy through its own manager, rather than deleting the file, is the \
point: uv, pipx, npm, cargo and the rest each keep a record of what they installed, and \
a manager whose record still says dev-prune is there will put the old binary back.
bun, pnpm and yarn install the same npm package and are each their own channel, not \
npm. A copy `bun add -g dev-prune` put in place is upgraded with bun and removed with \
bun; running npm against it installs a second copy under npm's prefix and leaves the \
first one stale and still on PATH.
Nothing is migrated, because nothing needs to be. Settings, the repository registry and \
the undo history live in the config directory, which no package manager owns.
With no `--channel` it prints which manager installed this copy and what `--channel` \
accepts. `--dry-run` prints the commands without running any of them.";