misspelledsearch.com:

version control system

information page

If you cannot find the information you are searching for on this page, we suggest searching Google with the correct spelling "version control system":

Google

Revision control (also known as version control) is the management of multiple revisions of the same unit of information. It is most commonly used in engineering and software development to manage ongoing evolution of digital documents like application source code, art resources such as blueprints or electronic models and other critical information that may be worked on by a team of people. Changes to these documents are identified by incrementing an associated number or letter code, termed the "revision number", "revision level", or simply "revision" and associated historically with the person making the change. A simple form of revision control, for example, has the initial issue of a drawing assigned the revision number 1. When the first change is made, the revision number is incremented to 2 and so on.

Software tools for revision control are increasingly recognized as being necessary for most software development projects.

Contents

  • 1 Overview
    • 1.1 Vocabulary
  • 2 See also
  • 3 External links

Overview

Engineering revision control developed from formalized processes based on tracking revisions of early blueprints or bluelines. Implicit in this control was the option to be able to return to any earlier state of the design, for cases in which an engineering dead-end was reached in iterating any particular engineering design. Likewise, in computer software engineering, revision control is any practice which tracks and provides controls over changes to source code. Software developers sometimes use revision control software to maintain documentation and configuration files as well as source code. In theory, revision control can be applied to any type of information record. In practice, however, the more sophisticated techniques and tools for revision control have rarely been used outside software development circles (though they could actually be of benefit in many other areas). However, they are beginning to be used for the electronic tracking of changes to CAD files, supplanting the "manual" electronic implementation of traditional revision control.

As software is developed and deployed, it is extremely common for multiple versions of the same software to be deployed in different sites, and for the software's developers to be working privately on updates. Bugs and other issues with software are often only present in certain versions (because of the fixing of some problems and the introduction of others as the program evolves). Therefore, for the purposes of locating and fixing bugs, it is vitally important for the debugger to be able to retrieve and run different versions of the software to determine in which version(s) the problem occurs. It may also be necessary to develop two versions of the software concurrently (for instance, where one version has bugs fixed, but no new features, while the other version is where new features are worked on).

At the simplest level, developers can simply retain multiple copies of the different versions of the program, and number them appropriately. This simple approach has been used on many large software projects. Whilst this method can work, it is inefficient (as many near-identical copies of the program will be kept around), requires a lot of self-discipline on the part of developers, and often leads to mistakes. Consequently, systems to automate some or all of the revision control process have been developed.

Traditionally, revision control systems have used a centralized model, where all the revision control functions are performed on a shared server. A few years ago, systems like TeamWare, BitKeeper, and GNU arch began using a distributed model, where each developer works directly with their own local repository, and changes are shared between repositories as a separate step. This mode of operation allows developers to work without a network connection, and it also allows developers full revision control capabilities without requiring permissions to be granted by a central authority. One of the leading proponents of distributed revision control is Linus Torvalds, inventor of the Linux kernel.

In most software development projects, multiple developers work on the program at the same time. If two developers try to change the same file at the same time, without some method of managing access the developers may well end up overwriting each other's work. Most revision control systems solve this in one of two ways. This is only a problem for centralized revision control systems, since distributed systems inherently allow multiple simultaneous editing.

Some systems prevent "concurrent access" problems, by simply locking files so that only one developer at a time has write access to the central "repository" copies of those files. Others, such as CVS, allow multiple developers to be editing the same file at the same time, and provide facilities to merge changes later. In the latter type, the concept of a reserved edit can provide an optional means to explicitly lock a file for exclusive write access, even though a merging capability exists.

The merits and drawbacks of file locking are hotly debated. It can provide some protection against difficult merge conflicts when a user is making radical changes to many sections of a large file (or group of files). But if the files are left exclusively locked for too long, other developers can be tempted to simply bypass the revision control software and change the files locally anyway. That can lead to more serious problems.

Some systems attempt to manage who is allowed to make changes to different aspects of the program, for instance, allowing changes to a file to be checked by a designated reviewer before being added.

Most revision control software use delta compression, which retains only the differences between successive versions of files. This allows more efficient storage of many different versions of files.

Some of the more advanced revision control tools offer many other facilities, allowing deeper integration with other tools and software engineering processes. Plugins are often available for IDEs such as Eclipse and Visual Studio, NetBeans IDE comes with integrated version control support.

The Wikipedia:Page history features of MediaWiki are identical in concept and practice to the revision control software discussed above.

Vocabulary

Repository 
The repository is where the files are stored, often on a server. Sometimes also called a depot (e.g. with Perforce).
Commit 
A commit (or, more rarely, install, submit, check-in or ci) occurs when you copy the changes you made on the local files to the directory (the version control software takes care of knowing which files changed since the last time the two were synchronized).
Change 
A change represents a specific modification to a document under version control. The granularity of the modification considered a change varies between version control systems.
Change List 
On many version control systems with atomic multi-change commits, a changelist identifies the set of changes made in a single commit. This can also represent a sequential view on the source code, allowing source to be examined as of any particular changelist ID.
Check-Out 
A check-out (or checkout or co) copies a working copy from the repository (it can be seen as the opposite of an import).
Update 
An update (or sync) copies the changes that were made to the repository into your working directory (it can be seen as the opposite of a commit).
Merge / Integration 
A merge or integration brings together (merges) concurrent changes into a unified revision.
Revision 
A revision or version is one version in a chain of changes.
Import 
The term import is used to describe copying the local directory tree in its entirety from your machine to the repository.
Export 
An export is similar to a check-out except that it creates a clean directory tree without version control metadata (often used prior to publishing the contents).
Conflict 
A conflict occurs when two changes are made by different parties to the same document or place within a document. Since the software may not be intelligent enough to decide which change is 'correct', a user is required to resolve the conflict.
Resolve 
The act of user intervention to address a conflict between different changes to the same document.

See also

  • SCM (Software Configuration Management) - Revision control for software projects
  • List of revision control software - by category
  • Free Software Centralized Revision Control Systems
    • GNU CSSC, an SCCS clone
    • RCS, the oldest well-known free system
    • CVS, still extremely popular
    • Subversion
  • Free Software Decentralized Revision Control systems
    • Bazaar
    • Codeville
    • Darcs
    • Git
    • GNU Arch
    • Mercurial
    • Monotone
  • Filesystems which manage versioning
    • Files-11 filesystem for OpenVMS supports file versioning
    • Fossil filesystem for Plan 9 supports intervaled snapshots
    • ZFS filesystem for OpenSolaris supports intervaled snapshots
  • Software version
  • Related information
    • Configuration management
    • source code
    • diff — Unix command
  • More related information
    • neutral build
    • RevML
    • SyncML
    • WebDAV
    • Scientific Community Metaphor only adds and records changes, but does not allow retractions of publications
    • Better SCM Initiative, a web site about alternatives to CVS

External links

  • The Configuration Management Yellow Pages
  • Revctrl Wiki
  • Essays on Version control A collection of essays on version control and software configuration management

This version control system index site has been developed to help wayward users find the information they are looking for, no matter how they are mistakenly spelled or mistyped. This site is designed to help users find version control system information for the following query variants:

version control version control sustum version control cistem version control cistum
version control cystem version control cystum version control sustem version control sistem
version control systum version control sistum version control systen version control systme
version control sysetm version control sytsem version control ssytem version control ysstem
version control syste version control systm version control sysem version control sytem
version control sstem version control ystem version system version contol system
version contrl system version cntrol system version cotrol system version conrol system
version contror system version contlol system version contlor system version contro system
version contlo system version controi system version comtrol system version contrlo system
version contorl system version conrtol system version cotnrol system version cnotrol system
version ocntrol system version ontrol system control system versiom control system
velsiom control system bursiom control system vursiom control system vrsion control system
vesion control system versin control system veltion control system bursion control system
burtion control system burshun control system vursion control system vurtion control system
vershun control system vurshun control system velsion control system velshun control system
vertion control system veison control system verison control system verson control system
velison control system verion control system verisun control system verisn control system
velisun control system burison control system burisun control system vurison control system
vurisun control system vrison control system verslon control system versino control system
versoin control system vesrion control system vresion control system evrsion control system
versio control system ersion control system

If you would like to add or correct the content of this site, or if you are interested in supporting the efforts of misspelledsearch.com by placing your product information on these version control system pages, please contact mistype@gmail.com for details.

This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "version".