#!/usr/bin/env bash
# SYNTHETIC fixture repos for #23539 evidence. Usage: mkrepo.sh <r1|r2|r3|r4> <before|after>
set -euo pipefail
row=$1 side=$2
dir=/tmp/ev-23539/repos/$row-$side
[ -e "$dir" ] && { echo "exists: $dir" >&2; exit 1; }
mkdir -p "$dir" && cd "$dir"
git init -q -b main
git config user.email ev@example.invalid && git config user.name ev
echo base > a.txt && git add a.txt && git commit -qm base
case $row in
  r1|r4)
    git branch -m main old
    git checkout -qb new
    echo '*.slow filter=slow' > .gitattributes
    echo payload > z.slow
    echo changed > a.txt
    git add -A && git commit -qm new
    git checkout -q old
    if [ "$row" = r1 ]; then
      git config filter.slow.smudge 'sleep 15; cat'
    else
      git config filter.slow.smudge "echo \$\$ > /tmp/ev-23539/r4-$side.pid; sleep 600; cat"
    fi
    git config filter.slow.clean cat
    ;;
  r2)
    git checkout -qb feature && echo feature > b.txt && git add b.txt && git commit -qm feature
    git checkout -q main
    ;;
  r3)
    git checkout -qb feature && echo feature > a.txt && git commit -qam feature
    git checkout -q main
    echo dirty > a.txt
    ;;
esac
echo "$dir"
