← Back
Home › Systems › CI/CD and developer tooling

version-control

version control system

Git

SystemTechniques · 5Primitives · 30 version-control Binary delta diffcompression · medium: Bsdiff, VCDIFF and xdelta-style binary patches between file versionsSet reconciliationdistributed · medium: Have/want negotiation and IBLT-style sync of two setsThree-way mergedistributed · medium: Merge two descendants against their common ancestor: take whichever side changed, report a conflict only where both changed the same spot differently.›Transitive closure indexgraphs · medium: Segment/interval labelling of DAGs (commit graphs) for fast reachability queriesMyers diffsearch-sort · medium: Greedy O(ND) shortest edit script between two sequences, the default of git and GNU diff; fast when the inputs are similar.›Bloom filterdata-structures · low: Bit array answering "definitely not present" or "probably present" in about 10 bits per key for 1 % false positives; inserts are cheap, deletes impossible.›Lowest common ancestorgraphs · low: LCA/merge-base computation in trees and DAGsMark-sweep garbage collectioncompilers · low: Find everything reachable from the roots, free the rest in place; handles cycles, never moves objects, and is the base of most production collectors.›Deflatecompression · low: DEFLATE/gzip: LZ77 + Huffman, the format behind HTTP gzip, zip and PNGRoaring bitmapscompression · low: Compressed set of 32-bit integers in 64K-value chunks, each a sorted array, bitmap or run list; fast intersections, the standard for bitmap indexes.›Merkle treedata-structures · low: Hash tree for verifying and diffing large datasets with logarithmic proofsAtomic file replacementhardware-os · low: Write temp file, fsync, rename over target, fsync directory: crash-safe whole-file updatesFile system watchinghardware-os · low: Treat OS change notices as hints, debounce them, and rescan and diff a snapshot whenever notices overflow or may be lost.›mmap and the page cachehardware-os · low: How read() and mmap reach file data through the kernel page cache, what readahead and madvise do, and why databases use their own buffer pool instead.›Cryptographic hashes (SHA-2, BLAKE3)security · low: Collision-resistant fingerprints of data; SHA-256 for interoperability, BLAKE3 for speed, HMAC/HKDF for keyed uses.›Digital signatures (Ed25519)security · low: Small, fast, deterministic public-key signatures that prove who produced a message; the default for tokens, releases and protocols.›SSH protocol (transport, auth, chan…security · low: A three-layer protocol on one TCP connection: encrypted packet transport, user authentication, then multiplexed channels with windows for shells, files and port forwards.›Content-addressed storagestorage · low: Store each blob under the hash of its bytes: immutable, deduplicated by construction, self-verifying on every read, and composable into Merkle trees.›Delta encodingcompression · low: Store differences between consecutive values instead of the values, turning sorted IDs, timestamps and counters into small numbers that pack into few bits.›LZ77compression · low: Replace repeated byte strings with (distance, length) back-references into a sliding window; the parsing stage of gzip, LZ4, zstd, Brotli and xz.›Rolling hashdata-structures · low: Rabin-Karp polynomial rolling hashes and winnowing for substring fingerprints and document matching+ 14 more primitives

Similar systems

Share the most building blocks with this one.