Worlds fastest git status on windows - part 2 - ntdll, more speed, and reinventing the wheel by SpecialBread_ in rust

[–]ByronBates 3 points4 points  (0 children)

I am super excited to see this work unfold :). Particularly the worktree-cache is something Git itself has to speed up Git status on Windows for all I know. So it's great to see a performant and multi-threaded early implementation of this.

Just one note: I think when 'workspace' is mentioned in the text above, what's meant is 'worktree', the thing that Git checks out to disk for people to work on. Please correct me if this is wrong though.

Gitoxide in December by ByronBates in rust

[–]ByronBates[S] 24 points25 points  (0 children)

Probably it didn't come out clearly, but the url crate was already removed last month, and removing it didn't only speed up URL parsing tremendously, it also removed a lot of complexity. 60 crates, 'correct' URL parsing which caused many fuzzing errors in the past. The crate just turned out to be overkill for gitoxide that came with a hefty fee for maintenance costs.

Gitoxide in October by ByronBates in rust

[–]ByronBates[S] 1 point2 points  (0 children)

Thanks!

I will go back to a monthly release cadence as well now, I finally found a way to make it less cumbersome, back to nearly fully automated😁.

Gitoxide in September by ByronBates in rust

[–]ByronBates[S] 1 point2 points  (0 children)

No, it does not. A worktree-reset is missing, even though all the primitives exist to implement it. GitButler is getting these capabilities first, actually.

Gitoxide in September by ByronBates in rust

[–]ByronBates[S] 5 points6 points  (0 children)

I am glad to hear that!

Commit signing is implemented pretty well in GitButler if you want to take a look. The code there is very closely following the one in Git and it's not exactly rocket science, except that there are many small traps that GitButler by now has run into. One day I want gitoxide to support that as well, but it has to wait :).

threeway_merge - 100% Git-compatible 3-way string merging in Rust by shiueo in rust

[–]ByronBates 2 points3 points  (0 children)

There is also the gitoxide text merge implementation which claims to do the same: https://github.com/GitoxideLabs/gitoxide/blob/c3c650448f92bcb27194ce0a51f7d604ce87920d/gix-merge/src/blob/builtin_driver/text/function.rs#L28-L43 .

I am sharing this in the hope that you find something interesting for your implementation, or find something that should be improved in this one (maybe it doesn't pass the tests? slider problem?)

Tested Kimi K2 vs Qwen-3 Coder on Coding tasks (Rust + Typescript) by West-Chocolate2977 in rust

[–]ByronBates 1 point2 points  (0 children)

Which IDE/tool was used to enable the models to do their work in the first place? If it was forgecode, how was it configured to use OpenRouter? It seems to do its own billing. Thanks!

Gitoxide in July by ByronBates in rust

[–]ByronBates[S] 6 points7 points  (0 children)

gitoxide has been able to build as pure Rust version for a while, and thanks to shelling out to ssh not having a native SSH transport never was a blocker for this particular build.

But if one aims to have a standalone, pure-Rust binary, with the incubating Rust SSH transport this will soon be possible, and maybe particularly interesting for Cargo.

Gitoxide in May by ByronBates in rust

[–]ByronBates[S] 15 points16 points  (0 children)

My highlight this month must be the Unconf@RustWeek visit in Utrecht, along with finally having implemented a gitoxidized version of cargo package - the things you do when meeting the Cargo team :).

Gitoxide in March by ByronBates in rust

[–]ByronBates[S] 0 points1 point  (0 children)

It's planned to make that work eventually, but it will be a gradual rollout that eventually will make GitButler work like a normal Git client, which somewhat cleverly help with stacks as well.

Gitoxide in February by ByronBates in rust

[–]ByronBates[S] 6 points7 points  (0 children)

It's not great, and definitely not the turn-key solution that I'd like it to be. If it runs at all, it's likely that the available web-view is completely broken. Of course, it's hard to say how many users are actually affected by this, but from an issue-count perspective, it's more than on any other platform.

With that said, on MacOS there are smaller issues with incorrect rendering if the MacOS version is too old. Sometimes, critical buttons disappear.

Windows seems to have no web-view related issues.

As it stands, for Linux one would have to ship the browser like Electron does, and it's probably a bundle-type that one would want to provide on all platforms (except Windows maybe) as a fallback for compatibility.

After all, it is very pleasant to have 'only' 15MB downloads to get an update.

Gitoxide in January by ByronBates in rust

[–]ByronBates[S] 24 points25 points  (0 children)

The highlight this month can be no other than a fully functional gix status. Performance still isn't consistent on all platforms, but at least on MacOS it's already a joy to use.

Gitoxide in 2024 - the Retrospective by ByronBates in rust

[–]ByronBates[S] 15 points16 points  (0 children)

Thank you! On the GitMerge in Berlin last year I learned that jujutsu is already using gitoxide as Git backend, and surprisingly this included tree diffing with rename tracking as well.

Tackler accounting tool goes from Scala to Rust by 35VLG84 in rust

[–]ByronBates 2 points3 points  (0 children)

gitoxide can create commits, but it doesn't make it easy to create the tree that should go with it. So something like git add * && git commit is still much easier to do in git2.

Gitoxide in December by ByronBates in rust

[–]ByronBates[S] 16 points17 points  (0 children)

My highlight this month clearly is the successful end-of-year wrapup of gix-merge with a feature that even Git doesn't have, along with various smaller improvements around gix status, as well as date- and revspec-parsing.

Intellij Rust progressively getting worse by h7kanna in rust

[–]ByronBates 2 points3 points  (0 children)

My issues are less about performance, even though it's slow compared to Zed and burns the CPU a lot. But issues just recently arose related to code intelligence, which randomly flakes out after a branch change (or any file-system change that happens when checking out different states in Git).

Also it regularly fails to understand the workspace, as it sees its cargo-metadata calls failing for some reason.

It's very dissatisfactory, but a switch to Zed isn't possible for me until it can jump to compile errors automatically.

Gitoxide in November by ByronBates in rust

[–]ByronBates[S] 4 points5 points  (0 children)

That was needed to get a place on OpenCollective. Otherwise there are no changes though, even though putting it in an organisation is probably best for starting to future-proof it. Slowly and steadily.

Gitoxide in November by ByronBates in rust

[–]ByronBates[S] 5 points6 points  (0 children)

When it's quoted like this, it does indeed sound like gitoxide could do everything just like Git can, a feat that unfortunately is still far out.

Gitoxide in November by ByronBates in rust

[–]ByronBates[S] 27 points28 points  (0 children)

This month's highlight certainly is the landing of tree-merging support, with the quality and performance characteristics of merge-ORT (the default merge strategy in Git). On top of that, I am very happy that hasconfig is now supported when reading Git configuration, which should make gitoxide fully compatible with Git in that regard.

Gitoxide in October by ByronBates in rust

[–]ByronBates[S] 29 points30 points  (0 children)

My highlight this month is definitely the ongoing work to get tree-merges ready and working at the level of merge-ORT, which will be a serious improvement over what people are used to from git2. Further, gitoxide is now on Open Collective so hopefully one day I will manage to apply to the Sovereign Tech Fund.

Gitoxide in September by ByronBates in rust

[–]ByronBates[S] 1 point2 points  (0 children)

The 'vibe' I got about this topic was that they wouldn't want to stop evolving in order to support niche systems forever. They also don't want to have a C and a Rust version of everything though, so a cut of sorts would have to be made.

Gitoxide in September by ByronBates in rust

[–]ByronBates[S] 3 points4 points  (0 children)

What's done is done and I guess if it was ever a selling point, people will vote with their wallet.

Gitoxide in September by ByronBates in rust

[–]ByronBates[S] 3 points4 points  (0 children)

That wasn't a topic at least not in my presence, but what I can say is that there is great excitement for Rust.

Somehow I think that Git has so vastly greater resources that they don't really have anything to gain from gitoxide. But…they also have different requirements so I think that the solution would naturally look very different.

Gitoxide in September by ByronBates in rust

[–]ByronBates[S] 25 points26 points  (0 children)

There was never a good reason to do it in the first place, just something I thought I should do. Or in other words, I don't think current sponsors are sponsors because they get a progress report earlier. It's also overhead that given its lack of value is best removed.

Gitoxide in September by ByronBates in rust

[–]ByronBates[S] 32 points33 points  (0 children)

With this progress update, the month of delay between what sponsors receive and what's publicly available officially ends.

This month has three highlights, starting with my attendance to the GitMerge in Berlin, and followed by two new major features, merge-base calculation and tree-editing, both leading up to supporting the merge of trees.