author | Joerg Sonnenberger <joerg@bec.de> |
Thu, 09 Apr 2020 19:51:03 +0200 | |
changeset 5318 | a799f5d228f1 |
parent 5192 | f5b366a31740 |
permissions | -rwxr-xr-x |
5192
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
1 |
#!/usr/bin/env bash |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
2 |
set -euo pipefail |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
3 |
|
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
4 |
unset GREP_OPTIONS |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
5 |
|
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
6 |
# This script finds compatibility-related comments with a node hash specified |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
7 |
# in all files in a given directory (. by default) and looks up the hash in a |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
8 |
# repo (~/hg by default) to determine if each of the comments is correct and, |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
9 |
# if not, it suggests the correct release. This can prevent accidentally |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
10 |
# removing a piece of code that was misattributed to a different (earlier) |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
11 |
# release of core hg. |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
12 |
|
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
13 |
# Usage: $0 WDIR HGREPO where WDIR is usually evolve/hgext3rd/ and HGREPO is |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
14 |
# the place with core Mercurial repo (not just checkout). Said repo has to be |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
15 |
# sufficiently up-to-date, otherwise this script may not work correctly. |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
16 |
|
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
17 |
workdir=${1:-'.'} |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
18 |
hgdir=${2:-~/hg} |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
19 |
grep -Ern 'hg <= [0-9.]+ \([0-9a-f+]+\)' "$workdir" | while read -r line; do |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
20 |
bashre='hg <= ([0-9.]+) \(([0-9a-f+]+)\)' |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
21 |
if [[ $line =~ $bashre ]]; then |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
22 |
expected=${BASH_REMATCH[1]} |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
23 |
revset=${BASH_REMATCH[2]} |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
24 |
tagrevset="max(tag('re:^[0-9]\\.[0-9]$') - ($revset)::)" |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
25 |
lastrel=$(HGPLAIN=1 hg --cwd "$hgdir" log -r "$tagrevset" -T '{tags}') |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
26 |
if [[ "$lastrel" != "$expected" ]]; then |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
27 |
echo "$line" |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
28 |
echo "actual last major release without $revset is $lastrel" |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
29 |
echo |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
30 |
fi |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
31 |
fi |
f5b366a31740
contrib: add a script to check release in compat comments that have node hash
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
32 |
done |