oxidize Git Cherry Tree #2859
Replies: 1 comment 1 reply
|
Thanks so much, it's great to see you (and GCT) here! First off, I think a lot of progress will be made this year, and in the year to follow, so I think we will get everything sorted out. Overall, I think a few of the problems you are having shouldn't (still) be problems, but maybe this ties into this:
That's kind of the opposite experience that I wish
This should already be fixed by now, and I am looking into the incorrect filter configuration problem.
It can hide now, so I'd think it should work for you.
Yes, that will definitely be coming. Something that you'd need is a way to have a programatic filter inserted into the pipeline (a custom LFS implementation). Actually I planned to ship
This will also happen sooner than later.
While this is already possible by manipulating the index directly, it's probably something that can benefit from an abstraction layer on top. I will probably get there eventually.
This exists. Enable in-memory objects on the
Will happen, it's planned.
I agree, there already is a
This should already work today as you can pass a programmatic credentials implementation, so auth-requests go to you in case of HTTP. SSH is fully under control of
Yes, definitely, it's planned, but might be a while.
I am pulling a blank here, can you elaborate?
The index really has an unnecessarily bad rep :D. However, I'd also hide it if I can, but still make sure it's handled correctly, something that I think you already do. I hope this covers all points, roughly, and I am sure in a year from now we will both be in a much better spot when it comes to supporting all Git operations natively. There is a lot of work in progress that needs review and tuning, and each of these will make substantial improvements. Also I plan to implement my very own Git client, which will certainly push me to make various improvements to |
Uh oh!
There was an error while loading. Please reload this page.
Just following up on #2712 (reply in thread)
First I wanted to say thanks for making gix, it is very pleasing, and helped get a lot of stuff working well in Git Cherry Tree :>
Generally speaking, the main things blocking git cherry tree from being fully on gix is ways of getting confidence that my code really does always work. Libgit2 seems to be fairly easy to use for an initial implementation, and I haven't had that many issues with a naive implementation. My experience with gix is that I need to become an expert in that part of the git world in order to get the results I need and not run into bugs.
For context, Git Cherry Tree uses libgit2, and gix. It doesnt need the git CLI at all to run, but does need git LFS installed if you want to work with LFS repos. It also runs without any installer or any github/etc accounts.
That said, aside from that, It seems like there is not that much blocking!
Whats blocking
Nice push. It seems that there is only the default config there. As long as its safe, reasonable speed, that would be enough.
For context: Git Cherry Tree only has push and fetch as remote operations, where "pull" is a local only operation (no surprise pulls into who knows what remote allowed!). Pushing tries to pick credentials that match a given repo, and force pushing is always with lease. It also tries to let the user know nicely why a push may have failed.
GCT also checks if the outgoing stuff contains any LFS pointers and if it does it runs git lfs push first through the git-lfs binary before the ref update. So gix would only need to be git objects.
Not blocking but would be nice to have
exists(), and also each miss hitsconsolidate_with_disk_statewhich happens by default on writing new blobs, so its typically hitting that. Looking at this from calculations, it should be something like a few seconds to commit that amount, so there is lots of improvent left. (after you mentioned commits seem slow, I checked and they are indeed much slower than they should be! But as you can see windows is very slow also!)Also nice to have but already handled
Here is stuff GCT already did and ran into, so this wouldn't help but worth knowing for others who might run into it:
Repository::rev_walk()as opposed to the lower levelgix::traverseAlso a potential bug report:
A filter driver config like
[filter "lfs"]in a global git config overrides a repo-local config, which is backwards from git. I think i also had an issue where a broken driver fails closed even withrequired=falseas opposed to git passing through raw content, but not sure about that one. I have a repro repo on my machine with an issue to write up here, putting that here to poke you into poking me :> I ran into some of this stuff while working on LFS support.Stuff Git Cherry Tree doesn't do
Hope this helps!
All reactions