bk99.de entertain the web since 1997

Version control as an understandable model rather than a list of commands

Summary

Kalid Azad explains version control with shared folders, snapshots and distributed copies before individual commands come into play. Centralised systems store the authoritative history on a shared server. Distributed systems replicate the repository and history to local machines.

Ideas

  • A repository keeps traceable states instead of constantly overwritten individual files.
  • Commits bundle related changes into named points in history.
  • Branches allow parallel work without immediate interference.
  • Merges deliberately bring separate lines of change back together.
  • Distributed systems give every developer a complete local history.
  • Visualised states explain version control better than isolated commands.

Insights

  • Version control is a model of states and relationships, not just a backup.
  • Good metaphors considerably lower the barrier to entry for complex tools.
  • Small, named changes improve debugging and collaboration at the same time.
  • Local histories make experiments cheaper and reduce the fear of change.

Facts

  • A merge can require manual decisions when changes conflict.
  • A branch denotes an independently continued line of development.

Recommendations

  • Make small commits with one clear purpose.
  • Synchronise before longer work and resolve conflicts early.
  • Practise branching, merging and restoring in a test repository first.

References

Read the original article

Search the Web Archive