lib: helpers: Handle stable revert update

pull/1626/head
Noah Gorny 2020-10-13 15:02:37 +03:00
parent 6bed26eccb
commit a1adfaaa3e
1 changed files with 18 additions and 3 deletions

View File

@ -222,19 +222,34 @@ _bash-it_update-() {
TARGET=${BASH_IT_REMOTE}/${BASH_IT_DEVELOPMENT_BRANCH} TARGET=${BASH_IT_REMOTE}/${BASH_IT_DEVELOPMENT_BRANCH}
fi fi
declare revision
revision="HEAD..${TARGET}"
declare status 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 [[ -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) num_of_lines=$(git log -1 --format=%B $i | awk 'NF' | wc -l)
if [ $num_of_lines -eq 1 ]; then if [ $num_of_lines -eq 1 ]; then
description="%s" description="%s"
else else
description="%b" description="%b"
fi fi
git log --format="%h: $description (%an)" -1 $i git log --format="${log_color}%h: $description (%an)" -1 $i
done done
echo "" echo ""