Home / Models
Architecture

Three ways to hold a history

The difference is not whether files are shared. It is where the full history lives and which operations need a server.

file → file.1 → file.2
01 / Local

History on one machine

Revisions are kept locally. Simple and independent, but sharing and coordinated merging are not built into the model.

  • Network not required
  • Collaboration needs another mechanism
  • Examples: RCS and early local tools
02 / Centralized

One repository server

A central server maintains the authoritative history. Working copies hold files and metadata; committing new revisions normally requires the server.

  • Clear central access and policy
  • Server availability matters for commits
  • Example: Apache Subversion
a1fb82e09f64featuremain
03 / Distributed

Full history in each clone

Each clone has its own repository. Commits can be created locally; peers exchange history through pull and push.

  • Offline commits and inspection
  • Synchronization remains a deliberate step
  • Examples: Git, Mercurial, Fossil

Central workflow, distributed tool: a Git team may still designate one hosted repository as the place for reviewed changes. That is a social convention, not a different storage model.

Under the surface

The objects worth knowing

Working tree

The files you edit. It is a view of one project state, with local changes layered on top.

Commit

A recorded change with identity, metadata, and a link to earlier history. The exact storage differs by system.

Reference

A name that helps find a revision. Git branches move with new commits; tags typically identify a chosen point.

Practical choice

Compare the models

ModelComplete history on each client?Commit while offline?Typical trade-off
LocalOnly on the local machineYesEasy solo use; collaboration is external.
CentralizedNo; server holds the authoritative repositoryUsually noSimple central governance; server is part of everyday work.
DistributedYes, in a full cloneYesFlexible work; teams must manage synchronization and policy.