-
Notifications
You must be signed in to change notification settings - Fork 9
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
Some ideas #9
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
Comments
Right now I'm trying to reach a nice middle ground between being too different from git's CLI (making switching harder) and being too similar (repeating git's design mistakes). Right now, the differences with git's CLI are only areas where the git CLI is clearly badly designed:
It will never be a design goal to fully replicate git's CLI to make xit a drop-in replacement for git, because that would require the commands to replicate git's behavior perfectly.
Agreed, and xit already supports SHA256 as well. I'm even running the main tests with it enabled to make sure it works. However, it is not currently enabled in the CLI tool. The only thing left to do is to make it work with git hosts that doesn't support SHA256 (i.e., pretty much all of them). I will probably have to maintain local maps of SHA256 -> SHA1 and SHA1 -> SHA256 oids, so that I can make it send/receive SHA1s over the wire and translate that to SHA256 locally.
I'll take a look, thank you for this.
Yeah it's certainly the most unique thing about xit right now. The main downside is that patch generation takes a long time for repos with large histories. I just changed it so this is an optional step that you enable with It already is the most prominent thing in the readme after git compatibility, but I also don't want to over-promise this early. It needs a lot more real world testing to validate it.
Are you sure it is always better than zlib? When I was researching, I found this issue which suggests it's actually worse than zlib for small blobs (less than 4KB). Right now, xit makes chunks that are 1-4 KB in size (yes, I should make them larger for really large files...it's on my list). Even if that problem can be resolved, I also need to wait for the zig standard library to add a zstd compressor. Last I checked, it only had a decompressor.
Right, and in reality any deficit in git's data structures could be solved in theory by adding "just another file" somewhere in your |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
Thanks for this project!
Some ideas (note that I merely have read blog post and didn't dig futher):
git merge
andgit rebase
problems. So, spread your xit as tool to solve all these problems. Of course, it helps if you are CLI-compatible with gitzstd -0
, it is fast enough, while giving substantial compression for text files. If it is too slow, try lz4, it is even fasterFeel free to ask any questions.
Also: even if you implement all these, I still do not plan to use xit. (I'm not trying to insult you, I just am trying to be honest here about my motivations.)
Also, there is discussion of your project here https://lobste.rs/s/mltpfg/xit_is_coming . If you want, I can give you invite
The text was updated successfully, but these errors were encountered: