Version Control

Version control is a set of tools and procedures that streamline the safekeeping of files and their change histories. Version control also allows several developers to work on the same project at the same time. Xcode provides a user interface to the client programs of version control systems in order to facilitate working with source files maintained in a version control repository.

Version control systems use the client/server model: A server program manages the repository (a directory tree or a database) that holds the managed files; developers use client programs to communicate with the server and perform tasks such as retrieving files from the repository or submitting changes to them. Typically, the clients are command-line tools, although there are also clients that use a graphical user interface.

The following chapters show how to use Xcode to work on projects under version control. They provide a client-side perspective of manipulating source code and resources hosted in a version control repository. This document doesn't provide an exhaustive treatment of version control.