Version Control System (VCS)
Table of Contents
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
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.
3.2.2 - Centralized
Centralized Version Control Systems (CVCSs)
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:
- 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