Revision control system” redirects here. Unsourced material may be challenged and removed. Changes are usually identified by a number or letter code, termed the “revision number”, “revision level”, control system book pdf free download simply “revision”.
For example, an initial set of files is “revision 1”. When the first change is made, the resulting set is “revision 2”, and so on. Revisions can be compared, restored, and with some types of files, merged. As teams design, develop and deploy software, it is 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. At the simplest level, developers could simply retain multiple copies of the different versions of the program, and label them appropriately. This simple approach has been used in 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. Since the code base is the same, it also requires granting read-write-execute permission to a set of developers, and this adds the pressure of someone managing permissions so that the code base is not compromised, which adds more complexity. Consequently, systems to automate some or all of the revision control process have been developed. This ensures that the majority of management of version control steps is hidden behind the scenes. Moreover, in software development, legal and business practice and other environments, it has become increasingly common for a single document or snippet of code to be edited by a team, the members of which may be geographically dispersed and 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 indispensable in such situations. This gives system administrators another way to easily track changes made and a way to roll back to earlier versions should the need arise.
Revision control manages changes to a set of data over time. These changes can be structured in various ways. Often the data is thought of as a collection of many individual items, such as files or documents, and changes to individual files are tracked. This accords with intuitions about separate files but causes problems when identity changes, such as during renaming, splitting or merging of files.
A copy outside revision control is known as a “working copy”. As a simple example, when editing a computer file, the data stored in memory by the editing program is the working copy, which is committed by saving. Concretely, one may print out a document, edit it by hand, and only later manually input the changes into a computer and save it. When checking into a different repository, this is interpreted as a merge or patch. In reality the structure is more complicated, forming a directed acyclic graph, but for many purposes “tree with merges” is an adequate approximation.