|
|
Revision controlRevision 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". It has been a standard practice in the knowledge maintenance of engineering drawings for as long as the generation of such drawings has been formalized. A simple form of revision control, for example, has the initial issue of a drawing assigned the revision level "A". When the first change is made, the revision level is changed to "B" and so on. There is more and more List of revision control software around as new methods of programming require more complex systems. ==Overview== 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. Computer bug 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). Another problem that occurs in large software development projects is that of multiple developers seeking to work on the Computer program at the same time. If two developers try to change the same Computer file at the same time, without some method of managing access the developers may well end up overwriting each other's work. 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. Traditionally, revision control systems have used a centralized model, where all changes to a project are submitted to a single, central server. A few years ago, systems like TeamWare, BitKeeper, SVK, 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. At the simplest level, users 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. 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 systems also provide methods for preventing "concurrent access" problems, by simply Lock (software engineering) files so that only one developer has write access to the central "repository" at once. Others, such as Concurrent Versions System, provide facilities to merge changes from multiple developers. 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 risks for 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 of the more advanced revision control tools offer many other facilities, allowing deeper integration with other tools and software engineering processes. plug-in are often available for integrated development environment such as Eclipse (computing) and Visual Studio. In particular the Wikipedia:Page history features of Wikipedia are identical in concept and practice to the revision control software discussed above, which was developed for source code control decades before the inception of Wiki software. ==See also== * List of revision control software - by category * Software version * Related information ** Configuration management ** source code ** diff — Unix command * More related information ** neutral build ** [http://public.perforce.com/public/revml/index.html RevML] ** SyncML ** WebDAV ** SCM ==External links== *[http://www.cmcrossroads.com/yp/ The Configuration Management Yellow Pages] Software engineering Version control systems Technical communication Wiki Revision controlIn software development, ''SCCS'', or Source Code Control System, was developed by Marc Rochkind at Bell Labs, for use on the UNIX system, based on the ability of the ed program to display the differences between two code streams, which is the diff algorithm. The database of differences is the mechanism for capturing the difference in versions of the source code of a program. SCCS based the database on the original version. RCS improved on this by capturing the difference from the current version. CVS is a descendant of RCS. Even Wikipedia uses version control when displaying the differences between versions of an article, which are merely text streams, just like the source code of a computer program. The concepts behind SCCS and RCS are identical, but the names of the operations differed. SCCS used ''get'' and ''delta'', for example, but RCS uses ''co'' and ''ci''. To this day, RCS, CVS, PVCS, SourceSafe, ClearCase are all compatible with SCCS (or .scc compliant) As in the operation of a public library, RCS used the fundamental operations of ''check-in'' and ''check-out'', abbreviated ''ci'' and ''co''. A programmer could ''check-in'' the source code of a program into RCS, which would time-stamp the submission. Any programmer could ''get'' a copy of the source code for use, but only one programmer at a time, could ''check-in'' a version of the source code of a program. If a programmer were to ''check-out'' a program, that signals that the current version is ''locked'' for changes, until that programmer ''checks-in'' the program. User:169.207.115.71 09:26, 22 Jan 2004 (UTC) ---- I removed this claim "(for instance, until recently, the Linux kernel)" from the following sentence(s): ::At the simplest level, users 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. As far as I know, the linux kernel has been in revision control for a very long time. User:Burschik 09:13, 28 Jan 2005 (UTC) == "Revision" vs. "version" == Based on the redirection links, it appears that "revision control" is considered more canonical than "version control". I tried to make the article a bit more consistent by changing some references from "version control" to "revision control". See other meanings of words starting from letter: RRA | RB | RC | RD | RE | RF | RG | RH | RI | RJ | RK | RL | RM | RN | RO | RP | RS | RT | RU | RW | RX | RY | RZ |Words begining with Revision_control: Revision_control Revision_control Revision_control_software Revision_control_software Revision_Control_System Revision_control_system |
These materials are based on Wikipedia and licensed under the GNU FDL
YouTube.com videos better site than Turbo Tax 2007 |
|
|