Version Control

Published on 2025-12-23
4 min read

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. For the examples in this book, you will use software source code as the files being version controlled, though in reality you can do this with nearly any type of file on a computer: images, layouts, documents, etc.

Why use version control?

These systems allow you to:

Types of Version Control Systems

Local Version Control Systems (Local VCS)

Description: It is the simplest and most primitive method. Many people manage versions by copying files into another directory (perhaps a time-stamped one).

One popular tool was RCS, which works by keeping sets of differences (that is, the differences between files) in a special format on disk, allowing any file to be recreated at any point in time.

Main problem: Everything is in one place on your computer, so if you lose that hard drive, you lose the entire project history.

Centralized Version Control Systems (CVCS)

Description: These systems were developed to solve the problem of needing to collaborate with developers on other systems. Examples include CVS, Subversion, and Perforce.

Characteristics:

Advantages:

Critical disadvantages:

Distributed Version Control Systems (DVCS)

Description: This is where Git, Mercurial, Bazaar or Darcs step in.

Main characteristics:

Major advantages:

When to use each?

LOCAL:

CENTRALIZED:

DISTRIBUTED (Git):

Comparison of Version Control Systems

FeatureLocalCentralizedDistributed
Collaboration✅✅
Offline work
Speed⚡⚡🐌
Full Backup
Learning Curve🤔

Tools by type

LOCAL:

CENTRALIZED:

DISTRIBUTED:

Tips to get started

Conclusion

The evolution has been: Local → Centralized → Distributed. Each type solves the problems of the previous one: local systems didn’t allow collaboration, centralized ones fixed that but created a single point of failure, and distributed ones eliminated that risk by giving every developer a full copy of the project.


Source consulted: Pro Git Book

Compartir: ¡Enlace copiado!

Comments

Loading comments...

Leave a comment