Recently I had to do an update to the underlying environment a codebase ran on. This was a somewhat involved upgrade and took a longer period of time than most of our work usually does. I did it in a separate worktree, so I didn’t have to constantly rejuggle the installed dependencies in the project, and could work on two features relatively concurrently
It also provides some utility for comparing the two versions. Nothing you couldn’t do other ways, but still useful
Not only that, but with toolchains like deno, it’s almost enjoyable
I wrote some telegram bots in deno and it’s got one of the cleanest deploy chains around, just compile to an executable for the target architecture, and SCP it over. Exec is statically linked, and so it just works