52 lines
1.0 KiB
Bash
Executable File
52 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
if test $# = 3
|
|
then
|
|
merge=$1 base=$2 target=$3
|
|
label=$(git log --oneline -1 "$merge")
|
|
|
|
base0=$(git rev-parse "$base^0") &&
|
|
base1=$(git rev-parse "$merge^2") &&
|
|
test "$base0" = "$base1" || {
|
|
echo >&2 "BAD: stale $base in $target"
|
|
exit 2
|
|
}
|
|
|
|
cd ../git.one || exit 1
|
|
if grep "$merge" :basecheck-tested-ok >/dev/null
|
|
then
|
|
exit 0
|
|
elif grep "$merge" :basecheck-tested-ng >/dev/null
|
|
then
|
|
echo >&2 "BAD (again): $label"
|
|
exit 1
|
|
fi
|
|
|
|
echo >&2 "Testing $merge $target"
|
|
git reset --quiet --hard "$merge" || exit 1
|
|
if Meta/Make -s -j32 >:basecheck-errors 2>&1
|
|
then
|
|
echo >&2 "OK: $label"
|
|
echo "$merge" >>:basecheck-tested-ok
|
|
exit 0
|
|
else
|
|
echo "$merge" >>:basecheck-tested-ng
|
|
cat ":basecheck-errors"
|
|
echo >&2 "BAD: $label"
|
|
exit 1
|
|
fi
|
|
|
|
exit 0 ;# just in case
|
|
fi
|
|
|
|
git log --oneline --abbrev=-1 --min-parents=2 ..seen |
|
|
sed -n -e "s|^\([0-9a-f]*\) Merge branch '\(.*\)' into \(../..*\)$|\1 \2 \3|p" |
|
|
{
|
|
exit=
|
|
while read merge base target
|
|
do
|
|
"$0" "$merge" "$base" "$target" </dev/null || exit=$?
|
|
done
|
|
exit $exit
|
|
}
|