Conversation
Snapshots are now automatically pruned when counts exceed 50: - Active snapshots pruned during Save() - Archived snapshots pruned during Archive() Oldest files are removed first based on timestamp in filename.
There was a problem hiding this comment.
Pull request overview
This pull request implements automatic pruning of undo snapshots to prevent unbounded growth in the .git/stack-undo/ directory. When snapshot counts exceed 50, the oldest files are automatically removed based on timestamp ordering in filenames.
Changes:
- Added automatic pruning logic that triggers during snapshot save and archive operations
- Implemented comprehensive tests to verify pruning behavior for both active and archived snapshots
- Updated documentation to inform users about the automatic cleanup feature
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| internal/undo/undo.go | Added pruning logic with maxActiveSnapshots and maxArchivedSnapshots constants (50 each), modified Save() and Archive() to call pruneDir(), and implemented pruneDir() function to remove oldest snapshots when limits are exceeded |
| internal/undo/undo_test.go | Added TestSavePrunesOldSnapshots to verify active snapshot pruning and TestArchivePrunesOldSnapshots to verify archived snapshot pruning |
| README.md | Updated documentation to explain that snapshots are automatically pruned to keep at most 50 pending and 50 archived, with no manual cleanup required |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Snapshots are now automatically pruned when counts exceed 50:
Oldest files are removed first based on timestamp in filename.