From c292dbc5a4742b91a863a8c51a144855c4145cc7 Mon Sep 17 00:00:00 2001 From: viktorking7 <140458814+viktorking7@users.noreply.github.com> Date: Tue, 23 Sep 2025 12:54:54 +0200 Subject: [PATCH 1/3] Update diffcheck.sh --- scripts/diffcheck.sh | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/scripts/diffcheck.sh b/scripts/diffcheck.sh index aa9f557cf2..28b23cfa86 100755 --- a/scripts/diffcheck.sh +++ b/scripts/diffcheck.sh @@ -1,15 +1,36 @@ #!/bin/bash -scripts/buildtable.pl >/tmp/table.mediawiki 2> /dev/null -diff README.mediawiki /tmp/table.mediawiki | grep '^[<>] |' >/tmp/after.diff || true -if git checkout HEAD^ && scripts/buildtable.pl >/tmp/table.mediawiki 2>/dev/null; then - diff README.mediawiki /tmp/table.mediawiki | grep '^[<>] |' >/tmp/before.diff || true - newdiff=$(diff -s /tmp/before.diff /tmp/after.diff -u | grep '^+') - if [ -n "$newdiff" ]; then - echo "$newdiff" - exit 1 - fi - echo "README table matches expected table from BIP files" +set -Eeuo pipefail + +after_diff="$(mktemp)" +before_diff="$(mktemp)" +table_current="$(mktemp)" +table_prev="$(mktemp)" + +tmpdir="$(mktemp -d)" +cleanup() { + git worktree remove --force "$tmpdir" >/dev/null 2>&1 || true + rm -f "$table_current" "$table_prev" "$before_diff" "$after_diff" >/dev/null 2>&1 || true +} +trap cleanup EXIT + +# Build table from current workspace +scripts/buildtable.pl >"$table_current" 2> /dev/null +diff README.mediawiki "$table_current" | grep '^[<>] |' >"$after_diff" || true + +# Build table from previous commit using a detached worktree +if git worktree add --detach "$tmpdir" HEAD^ >/dev/null 2>&1; then + ( + cd "$tmpdir" + scripts/buildtable.pl >"$table_prev" 2>/dev/null + ) + diff README.mediawiki "$table_prev" | grep '^[<>] |' >"$before_diff" || true + newdiff=$(diff -s "$before_diff" "$after_diff" -u | grep '^\+') + if [ -n "$newdiff" ]; then + echo "$newdiff" + exit 1 + fi + echo "README table matches expected table from BIP files" else echo 'Cannot build previous commit table for comparison' exit 1 From ad4c3abbdd734d2f94ef0d2741023b074fe1b766 Mon Sep 17 00:00:00 2001 From: viktorking7 <140458814+viktorking7@users.noreply.github.com> Date: Tue, 23 Sep 2025 19:10:07 +0200 Subject: [PATCH 2/3] Update diffcheck.sh --- scripts/diffcheck.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/diffcheck.sh b/scripts/diffcheck.sh index 28b23cfa86..3fee8d5532 100755 --- a/scripts/diffcheck.sh +++ b/scripts/diffcheck.sh @@ -7,6 +7,11 @@ before_diff="$(mktemp)" table_current="$(mktemp)" table_prev="$(mktemp)" +# Ensure previous commit is available (CI often uses shallow clones) +if ! git rev-parse --verify -q HEAD^ >/dev/null; then + git fetch --deepen=100 >/dev/null 2>&1 || git fetch --unshallow >/dev/null 2>&1 || true +fi + tmpdir="$(mktemp -d)" cleanup() { git worktree remove --force "$tmpdir" >/dev/null 2>&1 || true @@ -23,8 +28,8 @@ if git worktree add --detach "$tmpdir" HEAD^ >/dev/null 2>&1; then ( cd "$tmpdir" scripts/buildtable.pl >"$table_prev" 2>/dev/null + diff README.mediawiki "$table_prev" | grep '^[<>] |' >"$before_diff" || true ) - diff README.mediawiki "$table_prev" | grep '^[<>] |' >"$before_diff" || true newdiff=$(diff -s "$before_diff" "$after_diff" -u | grep '^\+') if [ -n "$newdiff" ]; then echo "$newdiff" From 035c55740ce683d668c7b95026711c32c18f7d96 Mon Sep 17 00:00:00 2001 From: viktorking7 <140458814+viktorking7@users.noreply.github.com> Date: Tue, 23 Sep 2025 19:14:10 +0200 Subject: [PATCH 3/3] Update diffcheck.sh --- scripts/diffcheck.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/diffcheck.sh b/scripts/diffcheck.sh index 3fee8d5532..f4a28953de 100755 --- a/scripts/diffcheck.sh +++ b/scripts/diffcheck.sh @@ -12,6 +12,12 @@ if ! git rev-parse --verify -q HEAD^ >/dev/null; then git fetch --deepen=100 >/dev/null 2>&1 || git fetch --unshallow >/dev/null 2>&1 || true fi +# If previous commit is still unavailable, skip diff check gracefully +if ! git rev-parse --verify -q HEAD^ >/dev/null; then + echo "Skipping diff check: previous commit (HEAD^) is unavailable in this environment" + exit 0 +fi + tmpdir="$(mktemp -d)" cleanup() { git worktree remove --force "$tmpdir" >/dev/null 2>&1 || true