---
title: "Short note: version control"
subject: "Software Engineering"
chapter: 10
key: "semester_5/software_engineering:version-control"
source: https://www.bctengineer.com/q/semester_5/software_engineering/version-control
site: BCT Engineering
---

# Short note: version control

Software Engineering · Chapter 10: Configuration Management

- Asked in: 2069 Chaitra, 3 marks; year not given, 3 marks
- Video: [What is Version Control | with Real Life Example](https://www.youtube.com/watch?v=d50BUkHbB2o) — Gate Smashers
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/software_engineering/version-control
- Whole chapter: https://www.bctengineer.com/md/semester_5/software_engineering/chapter-10

## Question

Write a short note on 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.

## Answer

**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.

```text
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.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What does version control allow?
   A. Recovering any earlier version and parallel work by developers
   B. Deleting history
   C. Avoiding testing
   D. Faster hardware
   Answer: A. It records every change, supports parallel work and allows recovery of earlier versions. (Key point: Purpose)

2. What is a branch?
   A. A deleted file
   B. A separate line of development, such as a bug-fix branch, that can be merged back
   C. A backup disk
   D. A test report
   Answer: B. A branch is a separate line of development; merging combines branches. (Key point: Branching and merging)

3. What is a baseline?
   A. Any draft file
   B. A bug report
   C. An approved, fixed version used as the base for further work
   D. A programmer's private workspace
   Answer: C. A baseline is an approved, fixed version used as the basis for later work. (Key point: Baseline)

## Related in other subjects

- [Two-version locking; optimistic CC](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Atwo-version-optimistic) — Distributed System, chapter 8
