This document outlines the maintenance procedures and optimization strategies for the OutlookAutoArchive repository.
- Total size: ~278.75 KiB (after optimization)
- Objects: 286
- Packs: 1
The following files contribute most to the repository size:
- icon.ico (160.70 KB) - Application icon
- OutlookAutoArchive.exe (116.00 KB) - Main executable
- OutlookAutoArchive.ps1 (90.51 KB) - Source script
- CHANGELOG.md (34.24 KB) - Version history
- setup_task_scheduler.exe (32.00 KB) - Setup utility
- Garbage Collection: Run
git gc --prune=nowregularly - Object Compression: Use
git repack -a -dfor better compression - Reflog Cleanup: Remove old reflog entries with
git reflog expire
- Binary Files: Marked as binary in
.gitattributesto prevent unnecessary diffs - Text Files: Normalized line endings for consistent diffs
- Large Files: Consider Git LFS for files > 50MB (not currently needed)
- Monthly Cleanup: Automated workflow runs on the 1st of each month
- Release Optimization: Assets are optimized when releases are published
- Branch Cleanup: Stale branches are automatically removed
- Repository Cleanup: Automated via GitHub Actions
- Size Monitoring: Check repository size trends
- Asset Review: Review if large files can be optimized
- Garbage Collection: Run
git gc --aggressive --prune=now - Asset Optimization: Compress executables if possible
- Documentation Update: Ensure all docs are current
# Check repository size
git count-objects -vH
# Check for large files
git ls-files | xargs ls -la | sort -k5 -nr | head -10
# Check for loose objects
git count-objects
# Analyze repository size
git rev-list --objects --all | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | sed -n 's/^blob //p' | sort -k2nr | head -10- Keep executables small: Use compression tools like UPX
- Optimize images: Compress icons and graphics
- Minimize documentation: Keep docs concise but comprehensive
- Regular commits: Avoid large single commits
- Clean history: Use interactive rebase to clean up history
- Branch management: Delete merged branches promptly
- Asset optimization: Compress release assets
- Version tagging: Use semantic versioning
- Release notes: Keep changelog updated
- Warning: Repository > 500 KB
- Action Required: Repository > 1 MB
- Critical: Repository > 5 MB
- Clone time: Should be < 30 seconds
- Fetch time: Should be < 10 seconds
- Push time: Should be < 15 seconds
- Large repository size: Run garbage collection
- Slow operations: Check for loose objects
- Large downloads: Optimize binary files
- Repository corruption: Use
git fsck - Lost objects: Check reflog for recovery
- Size issues: Run aggressive cleanup
- Implement Git LFS for large assets
- Add automated size monitoring
- Create asset compression pipeline
- Implement delta compression for releases
- GitHub repository size alerts
- Automated cleanup notifications
- Performance benchmarking
Last updated: January 2025 Maintained by: Ryan Zeffiretti