Chore
-
add package.include directives to control which files are packaged.
-
bump
rust-versionto 1.70
That way clippy will allow to use the fantasticOption::is_some_and()
and friends. -
change
rust-versionmanifest field back to 1.65.
They didn't actually need to be higher to work, and changing them
unecessarily can break downstream CI.Let's keep this value as low as possible, and only increase it when
more recent features are actually used. -
upgrade MSRV to v1.70
Our MSRV follows the one ofhelix, which in turn follows Firefox.
New Features
-
add configurable terminal screen modes.
-
limit commit selection highlighting.
-
mailmap support with 'm' toggle.
Additionally, dim disabled toggles. -
show bots and commit attributions in tix
Highlight authors identified by the Codex and Claude email addresses, and expose recognized contribution trailers alongside the primary author. Group actors by trailer kind and keep trailer metadata enabled by default behind a dedicated toggle.The regression fixture covers bot authors, bot co-authors, mixed-case trailer tokens, all recognized attribution kinds, repeated kinds, and malformed actor values. UI coverage verifies grouping, colors, bracketed bot names, and both metadata toggles.
Validated with:
- GIX_TEST_IGNORE_ARCHIVES=1 cargo test -p gix-tix --features sha1
- cargo check -p gix-tix --no-default-features --features sha256
- cargo clippy -p gix-tix --all-targets --features sha1 --no-deps
- cargo fmt --all -- --check
-
hide revision ancestry in tix
-
keep tix available as a standalone binary
-
add tix to the gix CLI
-
use tig colors in tix
-
add horizontal paging to tix
-
toggle special references in tix
-
show commit dates and author names in tix
-
draw commit graph lanes in tix
-
add Vim-style page scrolling to tix
-
let tix quit when history loading completes
-
add the Ratatui tix binary
Turn gix-tix into the installed tix executable and render its streaming history with Ratatui. The terminal loop accepts multiple revision tips, defaults to HEAD, keeps input responsive with bounded event draining, supports paging/tail navigation and cancellation, and copies full object IDs through OSC52.Use the latest Rust version requested for this binary. Ratatui TestBackend verifies row, decoration, selection, and footer rendering; key mapping and model/history tests cover the remaining behavior.
Post-implementation Linux checkout observations: first paint and quit completed within 0.11s; the history walker visited 1,352,640 commits in 7.24s with 1,148,321,792 bytes maximum RSS. For reference, git rev-list --count took 0.61s and git log --oneline --decorate took 14.55s. These are observations only, with no optimization threshold.
Validated with cargo test -p gix-tix, cargo clippy -p gix-tix --all-targets -- -D warnings, cargo check -p gix-tix, and cargo build --release -p gix-tix.
Bug Fixes
- better memory handling (use less)
- ignore broken references in tix decorations
- require explicit hash selection for gix-tix
- keep tix metadata visible on wide graphs
Other
-
Update gitoxide repository URLs
This updatesByron/gitoxideURLs toGitoxideLabs/gitoxidein:-
Markdown documentation, except changelogs and other such files
where such changes should not be made. -
Documentation comments (in .rs files).
-
Manifest (.toml) files, for the value of the
repositorykey. -
The comments appearing at the top of a sample hook that contains
a repository URL as an example.
When making these changes, I also allowed my editor to remove
trailing whitespace in any lines in files already being edited
(since, in this case, there was no disadvantage to allowing this).The gitoxide repository URL changed when the repository was moved
into the recently created GitHub organizationGitoxideLabs, as
detailed in #1406. Please note that, although I believe updating
the URLs to their new canonical values is useful, this is not
needed to fix any broken links, sinceByron/gitoxideURLs
redirect (and hopefully will always redirect) to the coresponding
GitoxideLabs/gitoxideURLs.While this change should not break any URLs, some affected URLs
were already broken. This updates them, but they are still broken.
They will be fixed in a subsequent commit.This also does not update
Byron/gitoxideURLs in test fixtures
or test cases, nor in theMakefile. (It may make sense to change
some of those too, but it is not really a documentation change.) -
Performance
- render tix reactively at most 60 fps
- intern author names in tix
- store commit titles in an arena
- speed up tix on million-commit histories
- avoid waiting and formatting hidden tix rows
Commit Statistics
- 49 commits contributed to the release.
- 1071 days passed between releases.
- 29 commits were understood as conventional.
- 1 unique issue was worked on: #325
Commit Details
view details
- #325
- Add the tix history and application model (774f856)
- Uncategorized
- Update changelogs prior to release (cb6ec7d)
- Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
- Add configurable terminal screen modes. (2140142)
- Limit commit selection highlighting. (e8a9649)
- Better memory handling (use less) (b5e7a45)
- Mailmap support with 'm' toggle. (7118a84)
- Merge pull request #2813 from GitoxideLabs/tix-authors (dbe7bb6)
- Show bots and commit attributions in tix (cdbe465)
- Merge pull request #2809 from GitoxideLabs/gix-tix-mvp (443b401)
- Explain
gix tixand that it's an experiment (b9c0c80) - Ignore broken references in tix decorations (3502897)
- Require explicit hash selection for gix-tix (ceabbbc)
- Hide revision ancestry in tix (fed0051)
- Render tix reactively at most 60 fps (40e1056)
- Intern author names in tix (48c925a)
- Keep tix available as a standalone binary (6e8f282)
- Store commit titles in an arena (def1157)
- Add tix to the gix CLI (31a94aa)
- Use tig colors in tix (da73da1)
- Add horizontal paging to tix (dcfe626)
- Toggle special references in tix (f9482d5)
- Keep tix metadata visible on wide graphs (7787666)
- Show commit dates and author names in tix (e63ffb7)
- Speed up tix on million-commit histories (640af5d)
- Avoid waiting and formatting hidden tix rows (db9b2a1)
- Draw commit graph lanes in tix (7478478)
- Add Vim-style page scrolling to tix (1cec12b)
- Let tix quit when history loading completes (5deecf2)
- Apply repository formatting to tix (d928f86)
- Add the Ratatui tix binary (5704260)
- Merge pull request #2568 from GitoxideLabs/dependabot/cargo/cargo-56d6b174d8 (ab2fee1)
- Update crates to Rust 2024 edition (2cb17b2)
- Remove rust_2018_idioms lint declarations (e10d5f6)
- Raise MSRV for hash dependency updates (3675a8d)
- Merge pull request #2518 from GitoxideLabs/improvements (444a92b)
- Add package.include directives to control which files are packaged. (3e05ca3)
- Merge pull request #2217 from GitoxideLabs/copilot/update-msrv-to-rust-1-82 (4da2927)
- Update MSRV to 1.82 and replace once_cell with std equivalents (6cc8464)
- Merge pull request #1762 from GitoxideLabs/fix-1759 (7ec21bb)
- Bump
rust-versionto 1.70 (17835bc) - Merge pull request #1624 from EliahKagan/update-repo-url (795962b)
- Update gitoxide repository URLs (64ff0a7)
- Merge branch 'global-lints' (37ba461)
- Workspace Clippy lint management (2e0ce50)
- Merge branch 'msrv' (8c492d7)
- Change
rust-versionmanifest field back to 1.65. (3bd09ef) - Merge branch 'maintenance' (4454c9d)
- Upgrade MSRV to v1.70 (aea89c3)