Skip to content

Home en

Won-Kyu Park edited this page Aug 28, 2026 · 2 revisions

SimpleRCS Wiki

SimpleRCS is a lightweight, stream-based version control library for a single document. It borrows the reverse-delta storage model from classic RCS, then rebuilds it around modern concerns: stream-centric I/O, O(1) HEAD access, unified handling of text and binary content, and an optional hash chain with GPG signing on top.

This wiki exists so someone new to the codebase can figure out what's going on and how things actually run, without spelunking through 5,000 lines of Python first. The source is still the ground truth — this is just the readable map of it.

Reading order

If you're starting from scratch, go top to bottom.

  1. System Overview — what SimpleRCS does and why it's shaped this way
  2. Source Code Map — package layout, what each file is responsible for
  3. Storage Format — the .srcs file format, block structure, hash chain
  4. Diff Engines — StreamSequenceMatcher vs. the Myers implementations, and which one actually runs
  5. CLI Tools — the command-line helpers under tools/

Design notes / experiments

  • Wiki Backend Design (Korean only) — what it takes to use SimpleRCS as the version engine behind a wiki, with real storage-backend benchmarks
  • Write Durability (Korean only) — what survives an interrupted commit, measured, with RCS/git/hg compared (its §8 recommendation was overturned by the page below)
  • Plan Atomic Commit (Korean only) — installing a commit with a temp file and os.replace. Cheaper than RCS's full rewrite because HEAD is stored last, so the unchanged part is a shared prefix. Implemented

Korean

Links

Clone this wiki locally