Highlights from Git 2.54
8 hours ago
- #Software Updates
- #Git 2.54
- #Version Control
- Git 2.54 introduces a new experimental command, `git history`, with `reword` and `split` operations for targeted, non-interactive history rewriting without affecting the working tree.
- Config-based hooks are now supported in Git 2.54, allowing hooks to be defined in configuration files, enabling multiple hooks per event and centralized management.
- Geometric repacking becomes the default strategy in `git maintenance run` in Git 2.54 for more efficient repository maintenance compared to traditional garbage collection.
- `git add -p` receives usability improvements, including hunk decision indicators and a `--no-auto-advance` flag for better control over staging.
- `git replay` is enhanced with atomic updates, a `--revert` mode, support for dropping empty commits, and replaying to the root commit.
- Git's HTTP transport now handles HTTP 429 responses with retries based on `Retry-After` headers and configurable settings.
- `git log -L` is reworked to work with patch formatting and pickaxe options like `-S` and `-G` for better line history tracing.
- Incremental multi-pack indexes (MIDX) gain compaction support in Git 2.54 to manage layers and bitmaps in long-lived repositories.
- `git status` adds a `status.compareBranches` configuration to compare against upstream and push remotes in triangular workflows.
- `git rebase` now has a `--trailer` option to append trailers to all rebased commits using the `interpret-trailers` machinery.
- Git now correctly displays valid signatures from expired GPG keys as good signatures instead of marking them as invalid.
- `git blame` includes a `--diff-algorithm` option to choose algorithms like `histogram` or `patience` for more useful blame output.
- Git's object database internals are restructured with a pluggable backend design, laying groundwork for future storage alternatives.
- `git backfill` now accepts revision and pathspec arguments to scope blob downloads in partial clones, improving practicality for large repositories.
- Alias configuration in Git 2.54 supports non-ASCII characters using a subsection-based syntax, while maintaining backward compatibility.