From 5bc3af7aad5bb9a104fc355a7e89d50470276de4 Mon Sep 17 00:00:00 2001 From: mg Date: Thu, 21 Sep 2023 11:17:32 +0200 Subject: [PATCH] bash: add ghist --- .bash_extra | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/.bash_extra b/.bash_extra index 4a54c54..04463d6 100644 --- a/.bash_extra +++ b/.bash_extra @@ -174,6 +174,49 @@ function gp { function mdtoc { grep --recursive --include="*.md" ^# | sort --version-sort --field-separator=":" | awk 'BEGIN {FS=":"}{print $2 "&&" $1}' | column --table --separator "&&" --table-truncate 1,2 } +# "scrolle" durch die commit-history +ghist() { + local total_commits=$(git rev-list HEAD --count) + local current_commit=$total_commits + + show_commit_diff() { + if [ $current_commit -le $total_commits ] && [ $current_commit -ge 1 ]; then + local commit_hash=$(git rev-list --reverse HEAD | sed -n "${current_commit}p") + git --no-pager show $commit_hash + fi + } + + while true; do + clear # Clear the terminal + show_commit_diff + + # Display navigation options + echo "-----------------------------------------------------------" + echo "Navigation: N - Next Commit, P - Previous Commit, Q - Quit" + echo "-----------------------------------------------------------" + read -n1 -s option + + case $option in + p|P) + if [ $current_commit -gt 1 ]; then + ((current_commit--)) + fi + ;; + n|N) + if [ $current_commit -lt $total_commits ]; then + ((current_commit++)) + fi + ;; + q|Q) + break + ;; + *) + echo "Invalid option" + ;; + esac + done +} + ### Aliase # tmux alias tmuxa="tmux a -t "