O'Reilly logo

Becoming a Better Programmer by Pete Goodliffe

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 20. Effective Version Control

Everything changes, nothing perishes.

Ovid

Version control, to the developer, is like eating and breathing; like a source editor and compiler. It’s an essential part of daily development life.

Version control is the process of managing multiple revisions of a set of files. These are commonly the source files for a software system (so it is often called source control), but it could just as easily be revisions of a document tree, or of anything else you’d store in a filesystem.

This is a simple enough facility. But a good version control system, used well, brings us many benefits:

  • It provides a central collaboration hub, orchestrating how developers work together.
  • It defines and publishes the state of the art; no code has been integrated unless it is stored in the system. Other tools link into this update feed—for example, continuous integration, release engineering, and code audit systems.
  • It maintains a history of the work on a project, archiving the exact contents that went into each specific release. It is a code time machine.

    This facilitates software archaeology, tracing the changes in files to work out the changes that comprised a particular feature. It catalogues who changed each file, and why.

  • It provides a central backup of your work.
  • It provides the developer with a safety net. It leaves room to experiment, to try changes, and roll them back if they do not work.
  • It fosters a rhythm and cadence of work: you do a chunk of work, test ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required