Version Control System (VCS)

1 - About

Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.

2 - Software

Version Control System (VCS)

3 - Implementation

3.1 - Copy in another directory

Copy files into another directory (time-stamped directory). Simple but error prone because you can forget which directory you’re in and accidentally write to the wrong file or copy over files you don’t mean to.

3.2 - VCS

3.2.1 - Local Computer

VCSs a simple database that kept all the changes to files under revision control.

Example:

  • rcs

3.2.2 - Centralized

Centralized Version Control Systems (CVCSs)

Example:

Downside: The centralized server is a single point of failure. Whenever you have the entire history of the project in a single place, you risk losing everything.

This system keep a set of files and the changes made to each file over time. They store information as a list of file-based changes.

3.2.3 - Distributed

Distributed Version Control Systems (DVCSs) such as:

  • Git,
  • Mercurial,
  • Bazaar
  • or Darcs

clients don’t just check out the latest snapshot of the files: they fully mirror the repository. Every clone is really a full backup of all the data. This architecture allows to set up several types of (validation) workflows that aren’t possible in centralized systems, such as hierarchical models.

4 - Structure

  • Trunk : Main development map
  • Branches : branches off of the trunk
  • Tags : named/numbered releases

5 - Documentation/Reference

code/version/vcs.txt · Last modified: 2017/10/13 09:40 by gerardnico