Skip to content

Commit 2381693

Browse files
authored
Merge pull request GitoxideLabs#2130 from GitoxideLabs/report
Report August 2025
2 parents c2c8c2f + 7550be1 commit 2381693

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

etc/reports/25-08.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
This month feels like one of these summer months when not much has been happening, *again*,
2+
at least I didn't get to contribute more than basic maintenance.
3+
4+
## GitButler - Core Engine Rewrite
5+
6+
Just to be able to report something, let me share some of my GitButler work again. The last time this came up I changed the way GB sees the world by making it based on a Graph data structure.
7+
8+
And now that this works and informs what the user sees in the app.
9+
What's new is that it is also used to mutate the repository, for instance by creating references.
10+
11+
All new code is heavily tested, something that is significantly easier now and more visual, so most cases can be validated in advance. And there are many more of them now given that GB is able to *also* work outside its own confined workspace now.
12+
13+
This is a long-winded way of saying that GB will be a general purpose Git client, and one that is more convenient than anything we know today.
14+
15+
## Community
16+
17+
### Improved Windows Compatibility
18+
19+
Eliah has been [hard at work](https://github.com/GitoxideLabs/gitoxide/pull/2115) to wrap up a PR which improves handling of Git related paths on Windows, with 10 devils hiding in the details for sure.
20+
And I am so glad for him being on the project, this is the kind of work I simply couldn't do.
21+
22+
### 75% Faster Precomposed-Unicode Handling
23+
24+
Thanks to the author of `starship`, David Knaack, `gitoxide` is now up to 75% faster when precomposing unicode paths upon ingestion. And all that was done effectively by a two-line change, switching over to a specialised function rather than implementing it by hand.
25+
This would also have the potential to speedup various algorithms that see a lot of paths, like the directory walk done in Git status, so the effects of this will be measurable everywhere.
26+
27+
### Better Submodule Status compatibility
28+
29+
Another one by David is the added support for `diff.ignoreSubmodules`, so `gix status` will now take that global override into consideration as well. Thanks to `starship` `gitoxide` really gets to run in many, many configurations, and gets polished along the way. Neat!
30+
31+
### Improved loose file refs compatibility
32+
33+
Did you know that the long-stable and mature `gix-ref` crate wrote slightly incompatible loose references?
34+
I didn't either, until a contribution finally added the missing newline character at the end of the hash.
35+
Thanks for contributing, Umar!
36+
37+
### Better date parsing
38+
39+
The `gix-date::parse()` function is the 'parse anything' kind of affair that is useful for specifying dates, and even though it's still way less flexible than what Git can do, it was too flexible as ultimately, it could interpret any leading number as unix timestamp. This is, of course, not desirable when passing `2015 Mar 8th` to it.
40+
41+
Thanks to the author of Stacked Git (*a tool I use myself every day*), Peter Grayson, this is now a thing of the past as this function now calls out to a custom-made stricter version of the `gix-date::parse_header()` function.
42+
43+
It's interesting to know that more bugs are probably hidden in `parse_header()` as that means it will still happily consider `2025 Mar` as unix timestamp. Due to may strange commits out there, it has to be flexible, but maybe not quite that much? Who dares to touch that, I wonder, given the unknown set of possible inputs that should only fail if Git would fail.
44+
45+
### Improved Commit Parsing
46+
47+
The real world always has surprises for you, especially if you are a parser. Thanks to Johannes Schindelin, and a living legend, commits now handle empty multi-line headers correctly, so more commits can be parsed and round-trip that previously couldn't.
48+
Thank you!
49+
50+
### Better text-conv handling
51+
52+
When launching text conversions when creating diffs, `gitoxide` will now correctly launch these programs through a shell, always, which is what Git does and thus needed for compatibility. Without that, it might not have found certain bundled programs for execution.
53+
This shell of course means "Git shell", but that's a common thing to do (on Windows), to be able to do anything correctly.
54+
55+
### The advent of AI
56+
57+
`gitoxide` is feeling the impact of AI tooling, such as agents and IDE integrations that allow for the generation of copious amounts of code.
58+
The adequate response is still unclear to me, and I have tried auto-reviewing with Copilot and even proactively launching Copilot to attempt resolving entire issues itself (-> it doesn't work).
59+
60+
### Gix in Cargo
61+
62+
There was no progress in Cargo.
63+
64+
65+
Cheers
66+
Sebastian
67+
68+
PS: The latest timesheets can be found [here (2025)](https://github.com/Byron/byron/blob/main/timesheets/2025.csv).

0 commit comments

Comments
 (0)