From 6c9633339d7331758dce8f2866487222a69882b9 Mon Sep 17 00:00:00 2001 From: Fredrik Jonsson <frjo@xdeb.org> Date: Sat, 15 Jun 2024 10:52:01 +0200 Subject: [PATCH] Add tips for forced push and history search in shell. (#3991) --- .../contributing/developer-tips.md | 63 ++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/docs/getting-started/contributing/developer-tips.md b/docs/getting-started/contributing/developer-tips.md index 41d0b1cdf..7fcd66683 100644 --- a/docs/getting-started/contributing/developer-tips.md +++ b/docs/getting-started/contributing/developer-tips.md @@ -1,6 +1,6 @@ # Hypha developer tips -## Git config +## Git configuration and commands To avoid spurious merge commits use a rebase workflow when appropriate. @@ -18,6 +18,12 @@ git fetch origin git rebase origin/main ``` +To update the feature branch on GitHub you then need to do a forced push. Instead of `--force` use `--force-with-lease`. If someone have made changes to the branch that you do not have locally you get a warning. It is a good habit to always use `--force-with-lease`. One day it will save you from a bad mistake. + +```shell +git push --force-with-lease +``` + ## Postgres snapshots/restore Hypha dev requirements contain the [dslr](https://github.com/mixxorz/DSLR) tool. Use this for fast snapshots and restores of the postgres database. @@ -68,3 +74,58 @@ If you editor does not a Language Server Protocol (LSP) preinstalled make sure t Your editor most likely have plugins for the other languages Hypha uses as well, css/scss, yaml and html. We recoment to install them as well. +## Shell configuration + +In the shell you can press the up arrow to see earlier (history) commands. It is possible to bind this to history search. + +You can then e.g. write `git` and then press the upp arrow and see the commands from your history that start with `git`. So useful and intuitive that it should be the default. + +For zsh: + +```shell +# Settings for history function +HISTFILE=$ZDOTDIR/.zsh_history +HISTSIZE=75000 +SAVEHIST=70000 +setopt append_history +setopt extended_history +setopt hist_expire_dups_first +setopt hist_ignore_dups +setopt hist_ignore_space +setopt hist_reduce_blanks +setopt hist_verify +setopt inc_append_history +setopt share_history +autoload -Uz up-line-or-beginning-search +autoload -Uz down-line-or-beginning-search +zle -N up-line-or-beginning-search +zle -N down-line-or-beginning-search + +# Bind up/down arrows to history search. +if [[ $OSTYPE == darwin* ]]; then + bindkey '\e[A' up-line-or-beginning-search + bindkey '\e[B' down-line-or-beginning-search +else + bindkey "${terminfo[kcuu1]}" up-line-or-beginning-search + bindkey "${terminfo[kcud1]}" down-line-or-beginning-search +fi +``` + +For bash: + +```shell +# Settings for history function +export HISTFILESIZE=50000 +export HISTSIZE=50000 +export HISTCONTROL=ignoreboth:erasedups +export HISTIGNORE='\&:e:c:l:ca:cd:cd -' + +# Make history work well with multiple shells +# append to the history file, don't overwrite it +shopt -s histappend + +# Bind up/down arrow to history search +bind '"\e[A":history-search-backward' +bind '"\e[B":history-search-forward' +``` + -- GitLab