Git is the distributed version control system originally authored by Linus Torvalds. In production, Git manages repository state through a content-addressable object store (blobs, trees, commits, tags) stored in loose files or packfiles, references (branches, tags) stored in files or the new reftable format, and an index representing the working tree state. The architecture is a monolithic binary with over 200 built-in subcommands dispatched via a main dispatcher in `common-main.c`. Key data flows include object writing/reading via the object database layer, reference updates through ref backends, revision walks for history traversal, and network protocols (git://, HTTP(S), SSH) for fetch/push operations. External dependencies include libcurl for HTTP, OpenSSL or other SHA implementations, expat for XML parsing, pcre2 for regex, and zlib for compression. Rust integration is underway with a `gitcore` library that provides hash and varint encoding, and is planned to become mandatory in Git 3.0. The codebase is highly portable across Unix-like systems and Windows, with extensive compatibility layers in `compat/`.
Jujutsu (jj) is a Git-compatible distributed version control system written in Rust. It provides a command-line interface for managing commits, branches (called bookmarks), tags, workspaces, and operations. The system features first-class conflict handling, an operation log for undo/redo, automatic rebase, and a powerful revset query language. The architecture is modular, with separate crates for core types (jj-core), library logic (jj-lib), CLI (jj-cli), and domain-specific languages (jj-dsl). The Git backend is the primary storage layer, but a simple backend exists for testing. The codebase emphasizes correctness with extensive integration tests, property-based testing, and snapshot testing. It also includes a templating system for customizable output, a progress bar, and a pager. The project is actively developed with frequent releases and a large community.