diff --git a/common/scripts/lint-version-change b/common/scripts/lint-version-change index 1b276062a4d..22a70dc660b 100755 --- a/common/scripts/lint-version-change +++ b/common/scripts/lint-version-change @@ -73,6 +73,32 @@ reverts_on_downgrade() { esac } +check_revert() { + for vr in $reverts; do + xbps-uhelper cmpver "${vr%_*}" "${version}" + case "$?" in + 0) + scan '^version=' 'in $reverts' + status=1 + ;; + 1) + scan '^version=' 'remove from $reverts' + status=1 + ;; + esac + done + for vr in $prev_reverts; do + if ! xbps-uhelper cmpver "$version" "${vr%_*}"; then + continue + fi + if [ $revision -gt "${vr##*_}" ]; then + continue + fi + scan '^revision=' "undo a revert with same revision as before" + status=1 + done +} + version_change() { version="$(show_template_var "$tip_rev" version)" revision="$(show_template_var "$tip_rev" revision)" @@ -84,6 +110,7 @@ version_change() { 1) revision_reset;; -1|255) reverts_on_downgrade;; esac + check_revert } version_change