42 lines
1.7 KiB
Markdown
42 lines
1.7 KiB
Markdown
|
|
# Changelog
|
||
|
|
|
||
|
|
All notable changes to this project will be documented in this file.
|
||
|
|
|
||
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||
|
|
|
||
|
|
## [0.2.0] - 2025-02-10
|
||
|
|
|
||
|
|
### Added
|
||
|
|
- **CLI**: `--dry-run` as primary option (with `--no-changes` as deprecated alias for backward compatibility)
|
||
|
|
- **CLI**: `--special` flag to process symlinks and special files (normally skipped)
|
||
|
|
- **Smart Default Excludes**: Automatically ignore `.git`, `.svn`, `node_modules`, `.cache`, `__pycache__`
|
||
|
|
- **Double Extensions**: Proper handling of `.tar.gz`, `.tar.bz2`, `.tar.xz`, `.tar.zst`, `.tar.lz`, `.tar.Z`
|
||
|
|
- **Parallel Processing**: Using `rayon` for parallel filename cleaning when processing ≥100 files
|
||
|
|
- **Write Permission Checks**: Check write permissions before attempting rename operations
|
||
|
|
- **Unit Tests**: 9 comprehensive tests for `clean_filename()` covering edge cases
|
||
|
|
|
||
|
|
### Fixed
|
||
|
|
- **Critical Bug**: Hidden files (like `.gitignore`) are no longer incorrectly renamed to `unnamed.xxx`
|
||
|
|
- Leading dot in hidden files is now correctly preserved
|
||
|
|
- Fixed all clippy warnings
|
||
|
|
|
||
|
|
### Changed
|
||
|
|
- Binary renamed from `NameToUnix` to `ntu` (shorter CLI usage)
|
||
|
|
- Improved error messages for permission issues
|
||
|
|
- Better handling of hidden files with spaces (`.my config` → `.my_config`)
|
||
|
|
|
||
|
|
### Performance
|
||
|
|
- Parallel processing with rayon for large directory trees (threshold: 100 files)
|
||
|
|
- Optimized regex patterns using `once_cell::Lazy`
|
||
|
|
|
||
|
|
## [0.1.0] - 2025-03-07
|
||
|
|
|
||
|
|
### Added
|
||
|
|
- Initial release
|
||
|
|
- Basic filename sanitization
|
||
|
|
- Configurable replacements via TOML
|
||
|
|
- Recursive directory processing
|
||
|
|
- Exclude patterns support
|
||
|
|
- German umlaut conversion
|
||
|
|
- Special identifier preservation (C++, C#)
|