From the README:
You’re looking at xit, a new version control system. Here be dragons, as they say. This is new and unstable software. Maybe one day it will be a worthy successor to git, but for now, only use it if you’re adventurous. Here are the main features:
- git compatible
- supports the git networking protocol for push/fetch/clone
- read more about git compatibility
- combine snapshot-based and patch-based version control
- merging and cherry-picking uses patches like Darcs and Pijul
- restoring files and anything sent over the network uses snapshots like git
- read more about snapshots vs patches
- built-in TUI
- all functionality will be exposed via the TUI
- for now though, it only shows log and status…baby steps!
- read more about the TUI
- store large/binary files efficiently
- uses a modern chunking algorithm (FastCDC) to deltify large files
- doesn’t compress binary files…it has no benefit and can even make them larger
- read more about chunking
- universal undo
- any change to the repo can be cleanly undone
- this feature is still under development, so it’s not available yet
- read more about the immutable database
- clean implementation
- uses no third-party libraries in production…all bugs are our bugs
- can be easily used as a library in other projects
- contains a reuseable git implementation in pure Zig
- read more about xit’s internals and using xit as a library
Always cool to see people implement stuff, regardless if it is a good product at the current point in time.
Btw, there is also jujutsu which also implements git, but it’s not written in zig. I’m case you want to use something that’s git the protocol, but not git the cli and you’re not that adventurous.
yeah I use jj daily myself and for the most part am very happy with it. I still find xit to be a interesting take - been driving it for a day and it seems solid.