Restore the index after every commit

```git-check-assertions
run ./test/git-check-assertions.bats
assert_success
```
This commit is contained in:
Sven van Heugten 2026-03-06 04:47:25 +01:00
parent 1ec02587b0
commit dc74688ce9
No known key found for this signature in database
GPG key ID: D612F88666F4F660

View file

@ -72,6 +72,9 @@ else
echo "No main or master branch found." >&2 echo "No main or master branch found." >&2
exit 1 exit 1
fi fi
restore() {
git restore -q --staged --worktree .
}
base="$(git merge-base "$base_branch" HEAD)" base="$(git merge-base "$base_branch" HEAD)"
mapfile -t commits < <(git rev-list --reverse "${base}..HEAD") mapfile -t commits < <(git rev-list --reverse "${base}..HEAD")
@ -92,12 +95,12 @@ for commit_hash in "${commits[@]}"; do
printf '%s\n' "$block" | sed 's/^/> /' printf '%s\n' "$block" | sed 's/^/> /'
if ! bash -euo pipefail -c "$block"; then if ! bash -euo pipefail -c "$block"; then
echo "git-check-assertions block failed in $commit_hash" >&2 echo "git-check-assertions block failed in $commit_hash" >&2
git restore -q . restore
echo "Returning to $orig_ref" echo "Returning to $orig_ref"
git checkout -q "$orig_ref" git checkout -q "$orig_ref"
exit 1 exit 1
fi fi
git restore -q . restore
fi fi
echo echo
done done