1# Who may push what: the owner anything; others only branches under their2# own name; nobody refs/forge; main never force-pushed or deleted.3. "$(dirname "$0")/../lib.sh"4user dami5user ana6repo dami/greet7clone dami dami/greet "$T/w/dami"8at "$T/w/dami" commit "first"9ok push_as dami "$T/w/dami" origin main1011clone ana dami/greet "$T/w/ana"12at "$T/w/ana" commit "ana's idea"13fails_with "only dami can push main" push_as ana "$T/w/ana" origin HEAD:main14fails_with "push under refs/heads/ana/" push_as ana "$T/w/ana" origin HEAD:dami/topic15ok push_as ana "$T/w/ana" origin HEAD:ana/topic16at "$T/w/ana" git tag v917fails_with "only dami can update this" push_as ana "$T/w/ana" origin v918fails_with "is internal" push_as dami "$T/w/dami" origin HEAD:refs/forge/keep/x1920# main: no force push, no delete.21at "$T/w/dami" git commit -q --amend -m "rewritten"22fails_with "does not accept force pushes" push_as dami "$T/w/dami" -f origin main23fails_with "refusing to delete main" push_as dami "$T/w/dami" origin :main