[August 25] #2131
Byron
announced in
Progress Update
[August 25]
#2131
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This month feels like one of these summer months when not much has been happening, again,
at least I didn't get to contribute more than basic maintenance.
GitButler - Core Engine Rewrite
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.
And now that this works and informs what the user sees in the app.
What's new is that it is also used to mutate the repository, for instance by creating references.
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.
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.
Community
Improved Windows Compatibility
Eliah has been hard at work to wrap up a PR which improves handling of Git related paths on Windows, with 10 devils hiding in the details for sure.
And I am so glad for him being on the project, this is the kind of work I simply couldn't do.
75% Faster Precomposed-Unicode Handling
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.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.
Better Submodule Status compatibility
Another one by David is the added support for
diff.ignoreSubmodules
, sogix status
will now take that global override into consideration as well. Thanks tostarship
gitoxide
really gets to run in many, many configurations, and gets polished along the way. Neat!Improved loose file refs compatibility
Did you know that the long-stable and mature
gix-ref
crate wrote slightly incompatible loose references?I didn't either, until a contribution finally added the missing newline character at the end of the hash.
Thanks for contributing, Umar!
Better date parsing
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 passing2015 Mar 8th
to it.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.It's interesting to know that more bugs are probably hidden in
parse_header()
as that means it will still happily consider2025 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.Improved Commit Parsing
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.
Thank you!
Better text-conv handling
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.This shell of course means "Git shell", but that's a common thing to do (on Windows), to be able to do anything correctly.
The advent of AI
gitoxide
is feeling the impact of AI tooling, such as agents and IDE integrations that allow for the generation of copious amounts of code.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).
Gix in Cargo
There was no progress in Cargo.
Cheers
Sebastian
PS: The latest timesheets can be found here (2025).
Beta Was this translation helpful? Give feedback.
All reactions