- Added a comprehensive plan for history rewrites in `docs/plans/history_rewrite.md`, including backup requirements and a checklist for destructive operations. - Created a QA report for history-rewrite scripts in `docs/reports/qa_report.md`, summarizing tests, findings, and recommendations. - Introduced `check_refs.sh` script to list branches and tags, saving a tarball of tag references. - Updated `clean_history.sh` to include non-interactive mode and improved error handling for backup branch pushes. - Enhanced `preview_removals.sh` to support JSON output format and added shallow clone detection. - Added Bats tests for `clean_history.sh` and `validate_after_rewrite.sh` to ensure functionality and error handling. - Implemented pre-commit hook to block commits to `data/backups/` directory. - Improved validation script to check for backup branch existence and run pre-commit checks. - Created temporary test scripts for validating `clean_history.sh` and `validate_after_rewrite.sh` functionality.
21 lines
431 B
Bash
Executable File
21 lines
431 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
IFS=$'\n\t'
|
|
|
|
# Prevent committing any files under data/backups/ accidentally
|
|
staged_files=$(git diff --cached --name-only || true)
|
|
if [ -z "$staged_files" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
for f in $staged_files; do
|
|
case "$f" in
|
|
data/backups/*)
|
|
echo "Error: Committing files under data/backups/ is blocked. Remove them from the commit and re-run." >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
exit 0
|