FACTOID # 168: There are 11 countries where the average woman has more than six children. Ten of them are in Africa.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Revision control

Revision control (also known as version control (system) (VCS), source control or (source) code management (SCM)) 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 development 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. Engineering is the applied science of acquiring and applying knowledge to design, analysis, and/or construction of works for practical purposes. ... “Software development” redirects here. ... Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ... Modern blueprint of the French galleon La Belle. ...


Standalone version control systems mostly come from the software engineering industry, but revision control is also embedded in various types of software like word processors (e.g. MSWord, OOwriter, Koffice), spreadsheets (e.g. OOcalc), in various content management systems. Integrated revision control is a key feature of wiki software packages such as MediaWiki, TWiki, etc. In wikis, revision control allows for the ability to revert a page to a previous revision, which is critical for defending a public wiki against vandalism and spam, to allow legitimate users to correct their mistakes, and to allow groups of editors to track each other's edits. A word processor (also more formally known as a document preparation system) is a computer application used for the production (including composition, editing, formatting, and possibly printing) of any sort of viewable or printed material. ... A Content Management System (CMS) is a software system used for content management. ... Wiki software is a type of collaborative software that runs a wiki system. ... For the organization that manages Wikipedia and its sister projects, see Wikimedia Foundation. ... For the robot character, see Twiki. ... Look up Wiki in Wiktionary, the free dictionary. ...


Software tools for revision control are increasingly recognized as being necessary for the organization of multi-developer projects.[1] It has been suggested that this article or section be merged with Comparison of revision control software. ...

Contents

Overview

Engineering revision control developed from formalized processes based on tracking revisions of early blueprints or bluelines. Implicit in this control was the ability to return to any earlier state of the design, for cases in which an engineering dead-end was reached in the development of the design. Likewise, in computer software engineering, revision control is any practice that tracks and provides control over changes to source code. Software developers sometimes use revision control software to maintain documentation and configuration files as well as source code. Also, version control is widespread in business and law. Indeed, "contract redline" and "legal blackline" are some of the earliest forms of revision control, and are still employed with varying degrees of sophistication. An entire industry has emerged to service the document revision control needs of business and other users, and some of the revision control technology employed in these circles is subtle, powerful, and innovative. The most sophisticated techniques are beginning to be used for the electronic tracking of changes to CAD files (see Product Data Management), supplanting the "manual" electronic implementation of traditional revision control. Whiteprint is the commercial terminology to describe document reproduction using the diazo chemical process. ... Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. ... For other uses, see Software developer (disambiguation). ... In computing, configuration files, or config files, are used to configure the initial settings for some computer programs. ... CAD is a TLA that may stand for: Cadiz Railroad (AAR reporting mark CAD) Canadian dollar – ISO 4217-code Capital Adequacy Directive Card Acceptance Device Children of the Anachronistic Dynasty Computer-aided design Computer-aided detection (medical) Computer-aided diagnosis (medical) Computer-assisted dispatch Computer-assisted drafting Coronary artery disease... Product Data Management (PDM) is a category of computer software used to control data related to products. ...


As software is designed, 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 simultaneously 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 develops). Therefore, for the purposes of locating and fixing bugs, it is vitally important 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). A computer bug is an error, flaw, mistake, failure, or fault in a computer program that prevents it from working as intended, or produces an incorrect result. ...


At the simplest level, developers could 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. While this method can work, it is inefficient as many near-identical copies of the program have to be maintained. This 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.


Moreover, in software development and other environments, including in legal and business practice, it is increasingly common for a single document or snippet of code to be edited by a team, the members of which may be geographically diverse and/or may pursue different and even contrary interests. Sophisticated revision control that tracks and accounts for ownership of changes to documents and code may be extremely helpful or even necessary in such situations.


Another use for revision control is to track changes to configuration files, such as those typically stored in /etc or /usr/local/etc on Unix systems. This gives system administrators another way to easily track changes to configuration files and a way to roll back to earlier versions should the need arise.


Compression

Most revision control software can use delta compression, which retains only the differences between successive versions of files. This allows more efficient storage of many different versions of files. In software configuration management (SCM), a delta is a type of file in which the difference (or diff) between two successive versions, is recorded. ...


Source management models

Traditional revision control systems use a centralized model, where all the revision control functions are performed on a shared server. If two developers try to change the same file at the same time, without some method of managing access the developers may end up overwriting each other's work. Centralized revision control systems solve this problem in one of 2 different "source management models": file locking and version merging. In information technology, a server is an application or device that performs services for connected clients as part of a client-server architecture. ...


File locking

The simplest method of preventing "concurrent access" problems is to lock files so that only one developer at a time has write access to the central "repository" copies of those files. Once one developer "checks out" a file, others can read that file, but no one else is allowed to change that file until that developer "checks in" the updated version (or cancels the checkout). In computer science -- more specifically, in the field of databases -- concurrency control is a method used to ensure that database transactions are executed in a safe manner (i. ...


File locking has merits and drawbacks. 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.


Version merging

Most version control systems, such as CVS, allow multiple developers to be editing the same file at the same time. The first developer to "check in" changes to the central repository always succeeds. The system provides facilities to merge changes into the central repository, so the improvements from the first developer are preserved when the other programmers check in. The Concurrent Versions System (CVS), also known as the Concurrent Versioning System, is an open-source version control system invented and developed by Dick Grune in the 1980s. ...


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.


Distributed revision control

Distributed revision control (DRCS) takes a peer-to-peer approach, as opposed to the client-server approach of centralized systems. Rather than a single, central repository on which clients synchronize, each peer's working copy of the codebase is a bona-fide repository.[2] Synchronization is conducted by exchanging patches (change-sets) from peer to peer. This results in some striking differences from a centralized system: Bona fide redirects here. ...

  • No canonical, reference copy of the codebase exists by default; only working copies.
  • Common operations such as commits, viewing history, and reverting changes are fast, because there is no need to communicate with a central server.[3]
  • Each working copy is effectively a remoted backup of the codebase and change history, providing natural security against data loss.[3]

There are two types of distributed systems: open and closed. Open systems are tuned more to open-source development, and closed systems to traditional, single baseline, development.


Open Systems

An open system of distributed revision control is characterized by its support for independent branches, and its heavy reliance on merge operations. Its general characteristics are:

  • Every working copy is effectively a branch.
  • Each branch is actually implemented as a working copy, with merges conducted by ordinary patch exchange, from branch to branch.
  • Code forking is therefore easier to accomplish, where desired, because every working copy is a potential fork. (By the same token, undesirable forks are easier to mend because, if the dispute can be resolved, re-merging the code is easy.)
  • It may be possible to "cherry-pick" single changes, selectively pulling them from peer to peer.
  • New peers can freely join, without applying for access to a server.

One of the first open systems was BitKeeper, noteable for its use in the development of the Linux kernel. A later decision by the makers of BitKeeper to restrict its licensing led the Linux developers on a search for a free replacement[4]. Common open systems now in free use are: BitKeeper is a software tool for revision control (configuration management, SCM, etc. ... The Linux kernel is a Unix-like operating system kernel. ...

Bazaar is a revision control system which implements the GNU arch protocol. ... Darcs is a distributed revision control system by David Roundy designed to replace the centralized CVS. Several noticeable differences in the design aim for simple use and powerful features. ... Git is a distributed revision control / software configuration management project created by Linus Torvalds to manage software development of the Linux kernel. ... Mercurial is a cross-platform, distributed source management tool for software developers. ... Monotone is an open source software tool for revision control. ... SVK is a decentralized version control system written in Perl, with a design comparable to BitKeeper and GNU arch. ... In computing, Subversion (SVN) is a version control system (VCS) initiated in 2000 by CollabNet Inc. ... The following tables compare general and technical information for notable revision control and software configuration management (SCM) software. ...

Closed Systems

A closed system of distributed revision control is based on a Replicated Database. A check-in is equivalent to a distributed commit. Successful commits create a single baseline. An example of a closed distributed system is Code Co-op. Replication refers to the use of redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or performance. ... This article is about computing. ... In the context of computer science and data management, commit refers to the idea of making permanent a set of tentative changes, such as at the end of a transaction. ... Code Co-op is the peer-to-peer version control system made by Reliable Software. ...


Integration

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 IntelliJ IDEA, Eclipse and Visual Studio. NetBeans IDE comes with integrated version control support. For other uses, see Plug in. ... An integrated development environment (IDE), also known as integrated design environment and integrated debugging environment, is a programming environment that has been packaged as an application program,that assists computer programmers in developing software. ... IntelliJ IDEA is a commercial Java IDE by the company JetBrains. ... Eclipse is an open source platform-independent software framework for delivering what the project calls rich-client applications, as opposed to thin client browser-based applications. ... Microsoft Visual Studio is a series of IDEs by Microsoft. ... NetBeans refers to both a platform for the development of Java desktop applications, and an integrated development environment (IDE) developed using the NetBeans Platform. ...


Common vocabulary

Terminology can vary from system to system, but here are some terms in common usage.[5][6]

Baseline 
An approved revision of a document or source file from which subsequent changes can be made.
Branch 
A set of files under version control may be branched or forked at a point in time so that, from that time forward, two copies of those files may be developed at different speeds or in different ways independently of the other.
Check-out 
A check-out (or checkout or co) creates a local working copy from the repository. Either a specific revision is specified, or the latest is obtained.
Commit 
A commit (check-in, ci or, more rarely, install, submit or record) occurs when a copy of the changes made to the working copy is written or merged into the repository.
Conflict 
A conflict occurs when two changes are made by different parties to the same document, and the system is unable to reconcile the changes. A user must resolve the conflict by combining the changes, or by selecting one change in favour of the other.
Change 
A change (or diff, or delta) 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, change set, or patch identifies the set of changes made in a single commit. This can also represent a sequential view of the source code, allowing source to be examined as of any particular changelist ID.
Dynamic stream 
A stream (a data structure that implements a configuration of the elements in a particular repository) whose configuration changes over time, with new versions promoted from child workspaces and/or from other dynamic streams. It also inherits versions from its parent stream.
Export 
An export is similar to a check-out except that it creates a clean directory tree without the version control metadata used in a working copy. Often used prior to publishing the contents.
Head 
The most recent commit.
Import 
An import is the action of copying a local directory tree (that is not currently a working copy) into the repository for the first time.
Mainline 
Similar to Trunk, but there can be a Mainline for each branch.
Merge 
A merge or integration brings together two sets of changes to a file or set of files into a unified revision of that file or files.
  • This may happen when one user, working on those files, updates their working copy with changes made, and checked into the repository, by other users. Conversely, this same process may happen in the repository when a user tries to check-in their changes.
  • It may happen after a set of files has been branched, then a problem that existed before the branching is fixed in one branch and this fix needs merging into the other.
  • It may happen after files have been branched, developed independently for a while and then are required to be merged back into a single unified trunk.
Repository 
The repository is where the current and historical file data is stored, often on a server. Sometimes also called a depot (e.g. with SVK, AccuRev and Perforce).
Reverse integration 
The process of merging different team branches into the main trunk of the versioning system.
Revision 
A revision or version is one version in a chain of changes.
Tag 
A tag or label refers to an important snapshot in time, consistent across many files. These files at that point may all be tagged with a user-friendly, meaningful name or revision number.
Trunk
The unique line of development that is not a branch (sometimes also called Baseline or Mainline)
Resolve 
The act of user intervention to address a conflict between different changes to the same document.
Update 
An update (or sync) merges changes that have been made in the repository (e.g. by other people) into the local working copy.
Working copy
The working copy is the local copy of files from a repository, at a specific time or revision. All work done to the files in a repository is initially done on a working copy, hence the name. Conceptually, it is a sandbox.

In computing, an atomic transaction is a database transaction or a hardware transaction which either completely occurs, or completely fails to occur. ... SVK is a decentralized version control system written in Perl, with a design comparable to BitKeeper and GNU arch. ... AccuRev is both the company name and the product name of a software tool for revision control (configuration management, SCM etc) of source code and other software development assets. ... Perforce, is a commercial, proprietary revision control system. ... A sandbox is a testing (or virtual) environment that isolates untested code changes and outright experimentation from the production environment or repository, in the context of software development including web development and revision control, and by extension in web-based editing environments including wikis. ...

References

  1. ^ Rapid Subversion Adoption Validates Enterprise Readiness and Challenges Traditional Software Configuration Management Leaders. EETimes (2007-5-17). Retrieved on 2007-6-1.
  2. ^ Wheeler, David A.. Comments on Open Source Software / Free Software (OSS/FS) Software Configuration Management (SCM) Systems. Retrieved on 2007-05-08.
  3. ^ a b O'Sullivan, Bryan. Distributed revision control with Mercurial. Retrieved on 2007-07-13.
  4. ^ "Bitmover ends free Bitkeeper, replacement sought for managing Linux kernel code", Wikinews, 2005-04-07. 
  5. ^ Collins-Sussman, Ben; Fitzpatrick, B.W. and Pilato, C.M. (2004). Version Control with Subversion. O'Reilly. ISBN 0-596-00448-6. 
  6. ^ Wingerd, Laura (2005). Practical Perforce. O'Reilly. ISBN 0-596-10185-6. 

Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ... is the 128th day of the year (129th in leap years) in the Gregorian calendar. ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ... is the 194th day of the year (195th in leap years) in the Gregorian calendar. ...

See also

This article or section does not cite its references or sources. ... The following tables compare general and technical information for notable revision control and software configuration management (SCM) software. ... In information technology and telecommunications, the term configuration management or configuration control has the following meanings: The management of features and assurances through control of changes made to hardware, software, firmware, documentation, test, test fixtures and test documentation of an automated information system, throughout the development and operational life of... It has been suggested that this article or section be merged with Comparison of revision control software. ... In software development, a neutral build is a build that reflects the current state of the source code checked into the source code version control system, without any developer-specific changes. ... // Recombinant text is a medium of collaborative design and composition based on an underlying mechanism of population genetics. ... The Scientific Community Metaphor is an approach in computer science to understanding and performing scientific communities. ... Software Configuration Management (SCM) is part of configuration management (CM). ... Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software. ... Source tracking pertains to the ability of some hypertext systems to rigorously track the exact source of every document or partial document included in the system; that is, they remember who entered the information, when it was entered, when it was updated and by whom, and so on. ... SyncML (Synchronization Markup Language) is the former name (currently referred to as: Open Mobile Alliance Data Synchronization and Device Management) for a platform-independent information synchronization standard. ... WebDAV was a working group of the Internet Engineering Task Force (IETF). ... A versioning file system is a file system which provides for the concurrent existence of several versions of a file. ... Files-11, also known as on-disk structure, is the filesystem used by Hewlett-Packards OpenVMS operating system, and also (in a simpler form) by the older RSX-11. ... OpenVMS[1] (Open Virtual Memory System or just VMS) is the name of a high-end computer server operating system that runs on the VAX[2] and Alpha[3] family of computers developed by Digital Equipment Corporation of Maynard, Massachusetts (DIGITAL was then purchased by Compaq, and is now owned... Fossil is the default file system in Plan 9 from Bell Labs. ... Plan 9 from Bell Labs is a distributed operating system, primarily used as a research vehicle. ... In computing, ZFS is a file system originally created by Sun Microsystems for the Solaris Operating System. ... OpenSolaris is an open source project created by Sun Microsystems to build a developer community around Solaris Operating System technology. ...

External links


  Results from FactBites:
 
Revision control - Wikipedia, the free encyclopedia (1423 words)
Revision control (also known as version control) is the management of multiple revisions of the same unit of information.
Traditionally, revision control systems have used a centralized model, where all the revision control functions are performed on a shared server.
One of the leading proponents of distributed revision control is Linus Torvalds, developer of the Linux kernel.
Revision control - definition of Revision control in Encyclopedia (764 words)
Revision control is an aspect of documentation control wherein changes to documents are identified by incrementing an associated number or letter code, termed the "revision level", or simply "revision".
In computer software engineering, revision control is any practice which tracks and provides controls over changes to a project's source code.
Most revision control systems use a system called delta compression, in which only the differences between successive versions of files are retained, thus allowing the efficient storage of many, many different versions of files.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.