From a1adfaaa3e84927b7a0b86ee4bc9b4eacd30e6bf Mon Sep 17 00:00:00 2001 From: Noah Gorny Date: Tue, 13 Oct 2020 15:02:37 +0300 Subject: [PATCH] lib: helpers: Handle stable revert update --- lib/helpers.bash | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/helpers.bash b/lib/helpers.bash index 31628d27..1bb2ad28 100644 --- a/lib/helpers.bash +++ b/lib/helpers.bash @@ -222,19 +222,34 @@ _bash-it_update-() { TARGET=${BASH_IT_REMOTE}/${BASH_IT_DEVELOPMENT_BRANCH} fi + declare revision + revision="HEAD..${TARGET}" declare status - status="$(git rev-list HEAD.."${TARGET}" 2> /dev/null)" + status="$(git rev-list ${revision} 2> /dev/null)" + declare revert + + if [[ -z "${status}" && ${version} == "stable" ]]; then + revision="${TARGET}..HEAD" + status="$(git rev-list ${revision} 2> /dev/null)" + revert=true + fi if [[ -n "${status}" ]]; then + if [[ $revert ]]; then + echo "Your version is a more recent development version ($(git log -1 --format=%h HEAD))" + echo "You can continue in order to revert and update to the latest stable version" + echo "" + log_color="%Cred" + fi - for i in $(git rev-list --merges --first-parent HEAD.."${TARGET}"); do + for i in $(git rev-list --merges --first-parent ${revision}); do num_of_lines=$(git log -1 --format=%B $i | awk 'NF' | wc -l) if [ $num_of_lines -eq 1 ]; then description="%s" else description="%b" fi - git log --format="%h: $description (%an)" -1 $i + git log --format="${log_color}%h: $description (%an)" -1 $i done echo ""