Skip to main content

Short note: version control

Short answer

Version control manages configuration items using a repository with check-out/check-in, version numbering, delta storage, branching and merging, and baselines. It provides a complete change history, enables easy rollback, and supports parallel development. Tools like Git implement these capabilities.

Write a short note on version control.

Version control is a set of procedures and tools for managing the different versions of configuration objects (source code, documents, models) created during software development. It records every change, lets developers work in parallel, and allows any earlier version to be recovered.

Main concepts

  • Repository: a central (or distributed) database that stores all versions of all files.
  • Check-out / check-in: a developer copies a file to a private workspace, edits it, and checks it back in, creating a new version.
  • Version numbering: each version gets a unique identifier, such as 1.0, 1.1, 2.0, or a commit ID in Git.
  • Delta storage: only the differences between versions are stored, saving space.
  • Branching and merging: a branch is a separate line of development (for example a bug-fix branch); merging combines branches back.
  • Baseline: an approved, fixed version used as the base for further work.
1.0 --> 1.1 --> 1.2 --> 2.0     (main line)
         |               ^
         +--> 1.1.1 --> 1.1.2   (branch, merged)

Capabilities of a version control system (Pressman): a project repository, a version management function that stores all versions, a make facility to build a specific version, and an issue or bug tracking function.

Tools: Git, Subversion (SVN), CVS, Mercurial.

Benefits

  • Complete history of who changed what, when and why.
  • Easy rollback to a working version if a change breaks the system.
  • Several developers can work on the same project safely.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Software Engineering chapter 10 questions →