Progress-Bar basiert nun auf der Anzahl geplanter Umbenennungen
statt auf der Gesamtzahl aller Einträge.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Cargo.lock aus .gitignore entfernt (Rust-Konvention: für Binaries committen)
- verbose-Parameter in clean_filename() wird jetzt korrekt von args.verbose
durchgereicht statt hardcoded false
- Config::load() gibt bei Parse-Fehlern eine Warnung aus statt den Fehler
still zu schlucken
- Platzhalter für C++/C# von CPLUSPLUS/CSHARP zu NTUxCPLUSPLUSx/NTUxCSHARPx
geändert um Kollisionen mit echten Dateinamen zu vermeiden
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Ungenutzte Dependencies entfernt (itertools, thiserror)
- 560 Build-Artefakte (target/) aus Git-Tracking entfernt
- NO_COLOR Umgebungsvariable unterstützen (https://no-color.org/)
- if let Ok/Err durch idiomatisches match ersetzt
- Fehlermeldung bei Aufruf ohne Pfade hinzugefügt
- Sequence::default() zu Sequence::standard() umbenannt
um Verwechslung mit dem Rust Default-Trait zu vermeiden
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
rayon's par_iter() auf indexierten Collections bewahrt die Reihenfolge,
daher war die Entfernung im vorherigen Commit unnötig. Mapping-Logik
in Closure extrahiert um Code-Duplizierung zu vermeiden.
Benchmark (dry-run, quiet):
5.050 Einträge: 48ms seq → 20ms par (2.4x)
20.050 Einträge: 186ms seq → 63ms par (2.9x)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Parallele Berechnung (par_iter) entfernt, da sie die tiefenbasierte
Sortierung zerstörte und Parent-Verzeichnisse vor ihren Kindern
umbenannt werden konnten
- Duplizierten Code zwischen parallelem und sequentiellem Pfad entfernt
- Clippy-Warning behoben: collapsible str::replace in sanitizer.rs
- Deprecation-Warning behoben: #[allow(deprecated)] für cargo_bin Import
- cargo fmt angewendet
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update repository URL to kitux.de/forgejo/dschlueter/ntu
- Replace GitHub badges with simple repository link
- Update email addresses: dieter.schlueter@linix.de -> dschlueter@kitux.de
- Update all installation and clone instructions
- Update bug report and documentation URLs in manpage
- Mark GitHub Actions workflows as legacy
Neue Features seit 0.2.0:
- CI/CD Pipeline mit automatischen Builds
- Shell-Completions für Bash, Zsh und Fish
- Professionelle Manpage
- Farbige Terminal-Ausgabe
- 13 Integration-Tests
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Vollständige Completion für Fish Shell (completions/ntu.fish)
- Unterstützt alle Flags und Optionen
- Path-Completion für Verzeichnisse und Dateien
- README um Fish-Installation erweitert
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Vollständige groff-formatierte Manpage (man/ntu.1)
- Dokumentiert alle Optionen, Flags und Transformationen
- Beispiele für typische Anwendungsfälle
- Sicherheitshinweise und Best Practices
- Beschreibt Default-Excludes und Parallelverarbeitung
- Konfigurationsdatei-Hierarchie dokumentiert
- Manpage in Debian-Paket-Assets integriert
- README um Installationsanweisung für Manpage erweitert
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Version erhöht von 0.1.0 auf 0.2.0
- CHANGELOG.md hinzugefügt mit vollständiger Feature-Liste
- Statistiken am Ende: Verarbeitete/geplante/umbenannte Dateien
- Fehler-Zähler für übersprungene/fehlgeschlagene Umbenennungen
- Kommentar-Klarstellung in sanitizer.rs
- Bessere Fehlerbehandlung mit detaillierten Error-Messages
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Bei >= 100 Dateien wird rayon für parallele Berechnung genutzt
- clean_filename() wird parallel ausgeführt (CPU-intensive Operation)
- Tatsächliche Umbenennung bleibt sequenziell (I/O-bound, Race-Conditions vermeiden)
- Bei < 100 Dateien sequenziell (Overhead vermeiden)
- RenameOperation-Struct für geplante Umbenennungen
Performance-Gewinn bei großen Verzeichnisbäumen mit vielen Dateien.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- .tar.gz, .tar.bz2, .tar.xz, .tar.zst, .tar.lz, .tar.Z
werden jetzt korrekt als Einheit behandelt
- "my archive.tar.gz" → "my_archive.tar.gz" (nicht mehr "my_archive.gz")
- Neue Hilfsfunktion split_filename()
- Tests für Doppel-Extensions hinzugefügt
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- --dry-run als primäre Option (--no-changes als deprecated alias)
- --special für Symlinks und Special Files
- Smart Default-Excludes: .git, .svn, node_modules, .cache, __pycache__
werden automatisch ignoriert (ähnlich wie detox)
- Alle Änderungen rückwärtskompatibel
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Binary heißt jetzt 'ntu' für kürzere CLI-Nutzung
- Package-Name bleibt 'NameToUnix' (für Repository/Crate)
- Alle Beispiele und Dokumentation in README.md angepasst
- CLAUDE.md mit neuen Build-Pfaden aktualisiert
- Cargo.toml: [[bin]] Sektion und deb assets angepasst
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Bugfix: Dateien mit führendem Punkt wurden zu "unnamed.xxx" umbenannt,
da der Punkt fälschlicherweise als Extension-Trenner interpretiert wurde.
Jetzt wird der führende Punkt als hidden_prefix separat behandelt.
- Alle Clippy-Warnungen behoben (redundanter Import, kollabierbare if-Blöcke,
manuelle Range-Checks)
- CLAUDE.md für Projekt-Dokumentation hinzugefügt
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>