Save before creating restore point: Before implementing auto-commit system
Auto-saved at 2025-07-29 14:24:49 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
174
AUTO-COMMIT-README.md
Normal file
174
AUTO-COMMIT-README.md
Normal file
@@ -0,0 +1,174 @@
|
||||
# Auto-Commit System for Timeshift Project
|
||||
|
||||
This system automatically saves your work to git to prevent losing changes when Claude gets restarted or when making experimental changes.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Start Auto-Watch (Recommended)
|
||||
```bash
|
||||
npm run watch-commit
|
||||
```
|
||||
This will automatically commit changes every 30 seconds when files are modified.
|
||||
|
||||
### Manual Commands
|
||||
```bash
|
||||
# Save current work immediately
|
||||
npm run save "Your commit message"
|
||||
|
||||
# Create a restore point before major changes
|
||||
npm run restore-point "Before major refactor"
|
||||
|
||||
# List all restore points
|
||||
./auto-commit.sh list
|
||||
|
||||
# Clean old restore points (keeps last 10)
|
||||
./auto-commit.sh cleanup
|
||||
```
|
||||
|
||||
## 📋 How It Works
|
||||
|
||||
### Automatic Commits
|
||||
- **File Watcher**: Monitors `components/`, `app/`, `lib/`, `styles/` directories
|
||||
- **Smart Delay**: Waits 30 seconds after last change before committing
|
||||
- **Rate Limiting**: Max 10 commits per hour to avoid spam
|
||||
- **File Types**: Watches `.tsx`, `.ts`, `.js`, `.jsx`, `.css`, `.scss`, `.json` files
|
||||
|
||||
### Restore Points
|
||||
- **Branches**: Creates timestamped branches like `restore-point-20250129-143022`
|
||||
- **Automatic**: Creates restore points on startup and every 30 minutes
|
||||
- **Manual**: Create before risky changes with `npm run restore-point "description"`
|
||||
|
||||
## 🔧 Features
|
||||
|
||||
### Auto-Commit Script Features
|
||||
✅ Automatic timestamped commits
|
||||
✅ Descriptive commit messages
|
||||
✅ Rate limiting to prevent spam
|
||||
✅ Restore point creation
|
||||
✅ Cleanup of old restore points
|
||||
✅ Git status checking
|
||||
|
||||
### File Watcher Features
|
||||
✅ Real-time file monitoring
|
||||
✅ Smart batching of changes
|
||||
✅ Graceful shutdown handling
|
||||
✅ Periodic restore points
|
||||
✅ Console logging for transparency
|
||||
|
||||
## 📚 Usage Examples
|
||||
|
||||
### Starting Your Work Session
|
||||
```bash
|
||||
# Start the auto-commit watcher
|
||||
npm run watch-commit
|
||||
|
||||
# In another terminal, start development
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Before Making Risky Changes
|
||||
```bash
|
||||
# Create a restore point
|
||||
npm run restore-point "Before implementing new feature"
|
||||
|
||||
# Make your changes...
|
||||
# Files are auto-committed as you work
|
||||
|
||||
# If something breaks, restore with:
|
||||
git checkout restore-point-20250129-143022
|
||||
```
|
||||
|
||||
### Manual Saves
|
||||
```bash
|
||||
# Quick save
|
||||
npm run save
|
||||
|
||||
# Save with custom message
|
||||
npm run save "Fixed spreadsheet column alignment"
|
||||
```
|
||||
|
||||
### Managing Restore Points
|
||||
```bash
|
||||
# List all restore points
|
||||
./auto-commit.sh list
|
||||
|
||||
# Clean up old ones (keeps last 10)
|
||||
./auto-commit.sh cleanup
|
||||
```
|
||||
|
||||
## 🎯 Benefits
|
||||
|
||||
1. **Never Lose Work**: Changes are saved every 30 seconds automatically
|
||||
2. **Easy Recovery**: Restore points let you go back to working states
|
||||
3. **Experiment Safely**: Try changes knowing you can always revert
|
||||
4. **Claude Restarts**: No more losing progress when Claude session ends
|
||||
5. **Version History**: Full git history of all changes with timestamps
|
||||
|
||||
## ⚙️ Configuration
|
||||
|
||||
### Modify Watch Settings
|
||||
Edit `watch-and-commit.js`:
|
||||
```javascript
|
||||
const COMMIT_DELAY = 30000; // 30 seconds
|
||||
const MAX_COMMITS_PER_HOUR = 10;
|
||||
const WATCH_DIRS = ['components', 'app', 'lib', 'styles'];
|
||||
```
|
||||
|
||||
### Modify Auto-Commit Behavior
|
||||
Edit `auto-commit.sh` to change commit message format or add custom logic.
|
||||
|
||||
## 🛟 Recovery Scenarios
|
||||
|
||||
### Claude Gets Restarted
|
||||
Your work is automatically saved! Just continue from where you left off.
|
||||
|
||||
### Experimental Changes Break Things
|
||||
```bash
|
||||
# List restore points to find a good one
|
||||
./auto-commit.sh list
|
||||
|
||||
# Checkout the restore point
|
||||
git checkout restore-point-20250129-143022
|
||||
|
||||
# Or continue from main with your auto-commits
|
||||
git checkout main
|
||||
git log --oneline -10 # See recent auto-commits
|
||||
```
|
||||
|
||||
### Need to Go Back a Few Commits
|
||||
```bash
|
||||
# See recent commits
|
||||
git log --oneline -10
|
||||
|
||||
# Reset to a specific commit (keep files)
|
||||
git reset --soft HEAD~3
|
||||
|
||||
# Or create a new branch from specific commit
|
||||
git checkout -b fix-attempt abc1234
|
||||
```
|
||||
|
||||
## 🚦 Status Indicators
|
||||
|
||||
The watcher shows:
|
||||
- 🔍 **Started**: Auto-commit watcher is running
|
||||
- 📝 **File changed**: A file was modified
|
||||
- 🔄 **Performing auto-commit**: About to save changes
|
||||
- ✅ **Auto-commit successful**: Changes saved
|
||||
- 🔖 **Creating restore point**: Making a backup branch
|
||||
- ⏸️ **Rate limit reached**: Too many commits, pausing
|
||||
|
||||
## 🎮 Quick Reference
|
||||
|
||||
| Command | Purpose |
|
||||
|---------|---------|
|
||||
| `npm run watch-commit` | Start automatic file watching |
|
||||
| `npm run save` | Immediate manual commit |
|
||||
| `npm run restore-point` | Create backup branch |
|
||||
| `./auto-commit.sh list` | Show restore points |
|
||||
| `./auto-commit.sh cleanup` | Remove old restore points |
|
||||
| `git checkout restore-point-XXXXXX` | Restore to backup |
|
||||
| `git log --oneline -10` | See recent commits |
|
||||
|
||||
---
|
||||
|
||||
**Pro Tip**: Always run `npm run watch-commit` when starting work with Claude to ensure nothing gets lost! 🛡️
|
||||
Reference in New Issue
Block a user