-
-
Notifications
You must be signed in to change notification settings - Fork 312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Oxidize GitButler #1287
Comments
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. |
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 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. |
Thank you @Byron for this! It was such a treat meeting you, and I am so excited about oxidising GitButler :) |
While this is something Gitoxide should of course support, we're actually moving away from needing this long-term.
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. |
Thanks for the suggestions! I have just linked the |
Used Git2 Features
The list is probably not completely exhaustive, omitting smaller features intentionally as they are covered, and focussing on the bigger picture.
hasconfig
checkout_branches…()
)status
diffy
, use native hunks maybe?)codecommit
orrad
.git add .
- with proper worktree filtering (add currently unsupported, but worktree filter could help already)git status
(primitives exist, WIP)git status
equivalent (primitives exist)Wanted
What follows is prominent issues from the GitButler tracker.
ssh
is used, which is exactly whatgit
does.ssh
transport yet which might be worse thangit2
right now. See Built-in SSH transport #1246 for more.git add
, aren't possible yet, but when they are they will call worktree filtersgit log --all
might be possible with namespaces. Maybe worth a try.gitoxide
is used everywhere - each repository instance created needs to have the GitButler namespace set then, at least those that read or write GitButler references.Here is the repo: https://github.com/gitbutlerapp/gitbutler
Shortcomings that might be a problem
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
should be step-wise.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
gitbutler .
(see this comment)Authentication
Use this label to list them all.
Profile Picutures
Pre-commit hooks
The text was updated successfully, but these errors were encountered: