Byron / gitoxide

An idiomatic, lean, fast & safe pure Rust implementation of Git
Apache License 2.0
8.54k stars 280 forks source link

Oxidize GitButler #1287

Open Byron opened 5 months ago

Byron commented 5 months ago

Used Git2 Features

The list is probably not completely exhaustive, omitting smaller features intentionally as they are covered, and focussing on the bigger picture.

Wanted

What follows is prominent issues from the GitButler tracker.

Here is the repo: https://github.com/gitbutlerapp/gitbutler

Guiding Principles

After our in-person meet, I kept mentioning a few driving principles that I find valuable to keep in mind when planning the next steps.

gitoxide is an implementation detail, but ultimately it will drive down the implementation complexity of the application while improving its performance and compatibility.

Notes on issues

From time to time, one can look into issues that are waiting for feedback.

Try to fix this when converting to gitoxide

Check the `gitoxide label for more.

Big Problems

Architecturally, there might be issues in resolving these:

Requested features

Roughly in order of effort-for-value

Authentication

Use this label to list them all.

Profile Picutures

Pre-commit hooks

darleybarreto commented 5 months ago

Hey Sebastian,

Thanks for this! I was planning on doing this discovery later this week, because I'm off due to Carnival. I actually opened a discussion in the repo.

Byron commented 5 months ago

Thanks for kicking this off and for pointing to the original discussion! It helped me to understand what's going on as I was a little confused - now I see that a migration is happening to the -git crate and all makes sense.

I was pretty quick in creating this issue and I welcome you to double-check, or ask for clarification where you see fit or need. This can only make it better.

krlvi commented 5 months ago

Thank you @Byron for this! It was such a treat meeting you, and I am so excited about oxidising GitButler :) I fully agree about the general principles that you outlined, it's very much how we like to approach problems too.

Qix- commented 3 months ago

add ODB alternates

While this is something Gitoxide should of course support, we're actually moving away from needing this long-term.

on Windows, there is no native ssh transport yet which might be worse than git2 right now.

Check out https://docs.rs/russh - they've been great maintainers and I used to use this crate for testing SSH stuff locally. Might work as a native transport. It's a maintained, spruced up version of Pijul's thrussh.

Byron commented 3 months ago

Thanks for the suggestions! I have just linked the gitoxide native #1246 issue, and believe that also lists russh as very strong candidate.