view contrib/merge-test-compat.sh @ 5602:e25394b6d021 stable

ngtip: fix TypeError: make revset from revs, not nodes (issue6405) This commit does two things: - Firstly, it tweaks the ngtip revset test to exercise the -G/--graph flag. This successfully triggers the bug when it is present. - Secondly, it changes the `ngtip` revset to return a revset made from integer revs instead of node hash bytes. The test now passes. Details: The TypeError was triggered by running hg log -r 'ngtip("default")' --graph in a repository with more than one changeset. The --graph tag caused the flow of control to call `reachableroots2` with the changeset ID found by the `ngtip` revset. Because the changeset ID was a node hash (bytes) instead of a rev (int), reachableroots2 raised the following error: TypeError: an integer is required (got type bytes)
author Sietse Brouwer <sbbrouwer@gmail.com>
date Wed, 07 Oct 2020 09:34:59 +0200
parents 17fac26833da
children
line wrap: on
line source

#!/bin/bash
set -euox pipefail

unset GREP_OPTIONS

compatbranches=$(hg branches --quiet | grep 'mercurial-' | grep -v ':' | sort -n --reverse)
prev='stable'
topic=${1:-'test-compat'}
for branch in $compatbranches; do
    # Logic in the revsets below:
    # 1. There is target topic on stable or compatibility branch: merge all
    # those commits, they are related to our work and need to pass tests on all
    # compatibility branches.
    # 2. There is no target topic: avoid any commits that have topic set, they
    # are definitely unrelated to what we're doing.
    # In other words, if you want to test certain commits, assign them all to
    # one topic and provide that topic as the first argument to this script.
    uptarget="first(max(branch('$branch') and topic('$topic')) or max(branch('$branch') and not topic()))"
    hg up -r "$uptarget"
    hg topic "$topic"
    mergetarget="first(max(branch('$prev') and topic('$topic')) or max(branch('$prev') and not topic()))"
    hg merge -r "$mergetarget"
    hg commit -m "test-compat: merge $prev into $branch"
    prev=$branch
done