Instead of exec-ing the tmux process, run it normally and exit
afterwards. Otherwise the zlogout is not read as mentioned a couple of
lines above and in `zsh(1)`:
> However, if the shell terminates due to exec'ing another process, the
> logout files are not read.
When connected over ssh and attaching to/creating a tmux session, the
shell should `exec` the tmux command so that detaching from the session
automatically also closes the ssh connection.
If something should happen and the `tmux` command bricks the remote
shell this can fixed by logging in with:
ssh [destination] zsh -dfi
Escape slashes in the branch name before passing it to `mktemp`.
Otherwise it would complain with:
mktemp: invalid suffix [...], contains directory separator
Add description in one sentence and use cases for this.
Remove sentence about removing `TEMP_DIR` that is outdated since:
5a8b5ffd21 ("git:checkout-worktree: Use `mktemp` template")
Use a template that directly includes the repository name and the branch
checked out. This makes finding and deleting the worktree directory if
anything goes wrong a lot easier.
Checkout the worktree directly in the temporary directory. With that
`TEMP_DIR` becomes obsolete.
Fix the exit condition when the function is called outside of a git
repository.
Use zsh's `:t` History Expansion Modifier, as `$?` does not keep `git
rev-parse`'s exit code, but rather `basename`'s.
This reverts commit 54d716510b ("git: Drop function in `spull`").
I apparently oversaw the use of arguments passed to `git pull`. This
makes the function necessary.
This contradicts a bit what I wanted in
1497fe3ed4 ("meta:install: Link all files in .ssh/"):
> This way potential new files in `.ssh/` do not have to be tracked
> manually.
as now, even though they do not have to be tracked manually in the
install.conf.yaml, that is the case for the .gitignore
But the consequences of private keys being pushed by accident (even
though not the entire folder is symlinked) are far greater than
potentially missing a symlink, making this a sensible step.
(And the overhead of adding one file is much smaller in the .gitignore)
Link all files on installation, even though currently there is only the
one config file. This way potential new files in `.ssh/` do not have to
be tracked manually.