Log in / create account | Login with OpenID
DocForge
An Open Wiki For Software Developers

Revision control system

From DocForge

(Difference between revisions)
(Created page with 'A '''revision control system''' is a software system with the primary goal of maintaining multiple versions and historical information for files. This can be very useful for bot…')
m (Categorized)
 
Line 14: Line 14:
* ''Branching'' is effectively making a copy in the repository, where separate versions of the same file can be maintained in parallel.  This is very useful in computer source code where multiple versions of an application may be maintained for years.
* ''Branching'' is effectively making a copy in the repository, where separate versions of the same file can be maintained in parallel.  This is very useful in computer source code where multiple versions of an application may be maintained for years.
* ''Merging'' takes multiple versions of a file, either from branching or from a file's history, and brings them together into the current version of the file.
* ''Merging'' takes multiple versions of a file, either from branching or from a file's history, and brings them together into the current version of the file.
 +
 +
 +
[[Category:Applications]]

Current revision as of 19:25, 18 July 2010

A revision control system is a software system with the primary goal of maintaining multiple versions and historical information for files. This can be very useful for both individual users and in shared environments. Revision control systems are very often used by teams of software developers to share and maintain source code.

Repositories [edit]

Files, typically of any type, are placed within a repository where they can be updated without losing past versions. The repository may be maintained on the local computer system or a remote server. Some systems, such as subversion use a centralized model with a single repository, while others, such as git use a distributed model with local synchronized repositories.

Most systems expose their repository as something that looks similar to a file system, with directories, files, and attributes. This lets users interact with their files in a way they are already familiar with. Often the fact that a local directory structure is under the control of a revision control system is seamless to the user and applications.

Actions [edit]

Once a repository is set up, a set of actions can be performed within the revision control system:

  • Files and directories can be added.
  • Files and directories can be checked out. For a centralized system that typically entails creating a local copy of files within the repository.
  • Locally performing an update with get the latest version of files and modify local files to match. For text files this might include merging changes instead of completely overwriting the file.
  • Committing or checking in pushes local changes into the repository. Past versions are automatically maintained while the current revision, or head, is now the latest updated version.
  • Branching is effectively making a copy in the repository, where separate versions of the same file can be maintained in parallel. This is very useful in computer source code where multiple versions of an application may be maintained for years.
  • Merging takes multiple versions of a file, either from branching or from a file's history, and brings them together into the current version of the file.