Bring all blocks together and place shorter alias variants behind longer
ones - ignore the shorter ones in the sorting.
Remove the comment above `autosquash` because the command is fairly
descriptive and it is the only comment and I don't really know how to
format the block then (since the comment is at the very top it looks
like it is for the whole block and I don't want to put a newline behind
`autofixup`).
Supported git commands should print their output in columns (e.g.
git-branch).
I am still unsure if I'd like to keep the option to fill rows first. The
default behaviour is columns first and `ls` does this too for example.
But I think that it makes more sense to fill the rows first, especially
with sorting by committerdate to delay the need to scroll as far as
possible.
Instead of matching certain paths relative from the root of the repo,
match them everywhere. I need this for non-git tools that read the
.gitignore file (e.g. fd and rg) to match/ignore the files when called
from a parent directory too. `./repo/.git` would otherwise not be
ignored.
This leads to problems in repositories with multiple remotes that do not
share the same tags. A fetch --all will then fetch and delete a tag at
the same time. Tags are also way less often deleted in my experience so
that an automatic pruning is not necessary.
Ignore the .git directory globally instead of ignoring it manually in
tools like fd and ripgrep.
I feel very dumb for putting all this time into the redefinition of :Rg,
especially since I am currently **much** procrastinating writing my
bachelor thesis.
List all files and directories but include the latest commits date and
subject, similar to the file browser in web-UIs of services like GitHub.
Also sort the entries by the commits date and time to see the most
recent changed files/folders at the bottom.
Move `git-commit-last-msg` into an autoloadable function. This way it
can also be executed as external script and thus in a git alias. This
makes it additionally possible to call it in vim over fugitive's `:Git`.
In interactive commands, allow the user to provide one-letter input with
a single key (i.e., without hitting enter). Currently this is used by
the --patch mode of git-add(1), git-checkout(1), git-restore(1),
git-commit(1), git-reset(1), and git-stash(1). Note that this setting is
silently ignored if portable keystroke input is not available; requires
the Perl module Term::ReadKey.[1]
[1] - git-config(1)
Move `signoff` out of the 'external' subsection as the script [got
replaced by the native way][1].
Update 'external' subsection's comment as it does not contain only zsh
functions.
[1]: bb21c4df7844 ("git: Replace git-signoff with `rebase --signoff`")
Move all submodules that were under .config/ into .local/share/ (alias
XDG_DATA_HOME). I got convinced that they feel out of place in .config/.
Instead of updating the paths from which they are sourced (e.g.
`TMUX_PLUGIN_MANAGER_PATH` or `packpath`), keep a symlink in the old
location that points to the new one. This has the benefit that
everything related to one program remains mostly accessible from the
same place instead of spreading everything out.
I am still unsure if I really like the new location as I affiliate user
**data** more with something that has to be backed up as it is
non-recreatable. And moving them out of .config/ had the reasoning that
they are not my config files but rather data from the internet that
could be retrieved when deleting. But using XDG_CACHE_HOME seems
unreasonable as well.
We'll see.
Move the fzf-repo from ./local/bin/ to .local/share/.
Update all relative symlinks' (e.g. fzf) targets.