This document describes how operations in vae-normalizer can be undone or reverted.
Every operation should be reversible. This project follows the principle that users should never be trapped by their choices.
| Operation | Reversible? | How to Revert |
|---|---|---|
| Generate splits | Yes | Delete output directory |
| Compute checksums | Yes | Delete manifest.csv |
| Generate metadata | Yes | Delete metadata.cue |
| Create output directory | Yes | rm -rf output/ |
Note: The normalize command never modifies the source dataset. All outputs are written to a separate output directory.
| Operation | Reversible? | How to Revert |
|---|---|---|
| Read manifest | Yes (read-only) | N/A |
| Check file existence | Yes (read-only) | N/A |
| Verify checksums | Yes (read-only) | N/A |
Note: The verify command is entirely read-only and makes no changes.
| Operation | Reversible? | How to Revert |
|---|---|---|
| Read manifest | Yes (read-only) | N/A |
| Display stats | Yes (read-only) | N/A |
Note: The stats command is entirely read-only.
| Operation | Reversible? | How to Revert |
|---|---|---|
| Compute hash | Yes (read-only) | N/A |
Note: The hash command is entirely read-only.
- No overwrites: The tool will not overwrite existing output without
--force - No source modification: Source dataset is never modified
- Explicit confirmation: Destructive operations require explicit flags
- Dry-run available: Use
--dry-runto preview operations
If the output directory is accidentally deleted:
# Regenerate everything
vae-normalizer normalize -d /path/to/dataset -o /path/to/outputThe tool is deterministic with the same seed, so regeneration produces identical results.
If manifest.csv becomes corrupted:
# Regenerate with same parameters
vae-normalizer normalize -d /path/to/dataset -o /path/to/output --seed 42All outputs are text-based and suitable for version control:
manifest.csv- Track in git for audit trailsplits/*.txt- Track for reproducibilitymetadata.cue- Track for provenance
This project integrates with git safely:
- Never force-pushes
- Never rewrites history without explicit request
- Always allows reverting commits
- Maintains full audit trail
The Isabelle/HOL proofs in VAEDataset_Splits.thy guarantee:
- Determinism: Same inputs → same outputs (with same seed)
- Completeness: All images accounted for
- Disjointness: No data leakage between splits
- Bijection: Original ↔ VAE mapping preserved
Questions about reversibility? Open an issue with the reversibility label.