Knowledge

Version control

Source 📝

422: 3066: 461:(each node can have more than one child), and has multiple tips, corresponding to the revisions without children ("latest revision on each branch"). In principle the resulting tree need not have a preferred tip ("main" latest revision) – just various different revisions – but in practice one tip is generally identified as HEAD. When a new revision is based on HEAD, it is either identified as the new HEAD, or considered a new branch. The list of revisions from the start to HEAD (in graph theory terms, the unique path in the tree, which forms a linear graph as before) is the 246:
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.
50: 1036:) is to create a local working copy from the repository. A user may specify a specific revision or obtain the latest. The term 'checkout' can also be used as a noun to describe the working copy. When a file has been checked out from a shared file server, it cannot be edited by other users. Think of it like a hotel, when you check out, you no longer have access to its amenities. 585:
the revision control software and change the files locally, forcing a difficult manual merge when the other changes are finally checked in. In a large organization, files can be left "checked out" and locked and forgotten about as developers move between projects - these tools may or may not make it easy to see who has a file checked out.
509:. This system of control implicitly allowed returning to an earlier state of the design, for cases in which an engineering dead-end was reached in the development of the design. A revision table was used to keep track of the changes made. Additionally, the modified areas of the drawing were highlighted using revision clouds. 497:
people start working on a project separately. Similarly, in the presence of multiple data sets (multiple projects) that exchange data or merge, there is no single root, though for simplicity one may think of one project as primary and the other as secondary, merged into the first with or without its own revision history.
394:
the changes into a computer and save it. For source code control, the working copy is instead a copy of all files in a particular revision, generally stored locally on the developer's computer; in this case saving the file only changes the working copy, and checking into the repository is a separate step.
538:. 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 two different "source management models": file locking and version merging. 1774:
In principle two revisions can have identical timestamp, and thus cannot be ordered on a line. This is generally the case for separate repositories, though is also possible for simultaneous changes to several branches in a single repository. In these cases, the revisions can be thought of as a set of
1456:
Once the pull request is reviewed and approved, it is merged into the repository. Depending on the established workflow, the code may need to be tested before being included into official release. Therefore, some projects contain a special branch for merging untested pull requests. Other projects run
1079:(also known as commit and revision) is a set of alterations packaged together, along with meta-information about the alterations. A changeset describes the exact differences between two successive versions in the version control system's repository of changes. Changesets are typically treated as an 393:
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
233:
or features of the 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
2460:
Versioning is a priceless process, especially when you have multiple developers working on a single application, because it allows them to easily share files. Without version control, developers will eventually step on each other's toes and overwrite code changes that someone else may have completed
846:
The packaging of commits, branches, and all the associated commit messages and version labels, improves communication between developers, both in the moment and over time. Better communication, whether instant or deferred, can improve the code review process, the testing process, and other critical
784:
In addition to the costs of licensing the version control software, using version control requires time and effort. The concepts underlying version control must be understood and the technical particulars required to operate the version control software chosen must be learned. Version control best
245:
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
584:
File locking has both 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). If the files are left exclusively locked for too long, other developers may be tempted to bypass
517:
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 in business and law with varying degrees of sophistication. The most sophisticated techniques are beginning to be used for
496:
In distributed revision control, in the presence of multiple repositories these may be based on a single original version (a root of the tree), but there need not be an original root - instead there can be a separate root (oldest revision) for each repository. This can happen, for example, if two
480:
and is one of the most complex aspects of revision control. This most often occurs when changes occur in multiple branches (most often two, but more are possible), which are then merged into a single branch incorporating both changes. If these changes overlap, it may be difficult or impossible to
444:
Revisions occur in sequence over time, and thus can be arranged in order, either by revision number or timestamp. Revisions are based on past revisions, though it is possible to largely or completely replace an earlier revision, such as "delete all existing text, insert new text". In the simplest
824:
When bugs arise, knowing what was done when helps with damage mitigation and recovery by assisting in the identification of what problems exist, how long they have existed, and determining problem scope and solutions. Previous versions can be installed and tested to verify conclusions reached by
758:
which involve only one task or fix -- a corollary to this is to commit only code which works and does not knowingly break existing functionality; utilizing branching to complete functionality before release; writing clear and descriptive commit messages, make what why and how clear in either the
2343:
The history of the document provides invaluable information about the author and the date of editing. It also gives on the purpose of the changes made. It will have an impact on the developer that works on the latest version as it will help to solve problems experienced in earlier versions. The
249:
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.
369:
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.
492:
which is applied to HEAD (of the trunk), creating a new revision without any explicit reference to the branch, and preserving the tree structure. Thus, while the actual relations between versions form a DAG, this can be considered a tree plus merges, and the trunk itself is a line.
833:
Version control can greatly simplify debugging. The application of a test case to multiple versions can quickly identify the change which introduced a bug. The developer need not be familiar with the entire code base and can focus instead on the code that introduced the problem.
2344:
ability to identify the author of the document enables the current team to link the documents to specific contributors. This, in turn, enables the current team to uncover patterns that can help with fixing bugs. This will help to improve the overall functionality of the software.
2313:
Version control systems allow you to compare files, identify differences, and merge the changes if needed prior to committing any code. Versioning is also a great way to keep track of application builds by being able to identify which version is currently in development, QA, and
397:
If multiple people are working on a single data set or document, they are implicitly creating branches of the data (in their working copies), and thus issues of merging arise, as discussed below. For simple collaborative document editing, this can be prevented by using
488:(DAG). The graph is acyclic since parents are always backwards in time, and rooted because there is an oldest version. Assuming there is a trunk, merges from branches can be considered as "external" to the tree – the changes in the branch are packaged up as a 560:
operation is usually the most critical in this sense. Commits tell the revision control system to make a group of changes final, and available to all users. Not all revision control systems have atomic commits; Concurrent Versions System lacks this feature.
2193: 1136:
A short note, written by the developer, stored with the commit, which describes the commit. Ideally, it records why the modification was made, a description of the modification's effect or purpose, and non-obvious aspects of how the change works.
1563:
A container for branched files that has a known relationship to other such containers. Streams form a hierarchy; each stream can inherit various properties (like versions, namespace, workflow rules, subscribers, etc.) from its parent stream.
811:
and the easy application of patches to code bases, simplifies the maintenance and concurrent development of the multiple code bases associated with the various stages of the deployment process; development, testing, staging, production, etc.
785:
practices must be learned and integrated into the organization's existing software development practices. Management effort may be required to maintain the discipline needed to follow best practices in order to obtain useful benefit.
749:
Following best practices is necessary to obtain the full benefits of version control. Best practice may vary by version control tool and the field to which version control is applied. The generally accepted best practices in
842:
Version control enhances collaboration in multiple ways. Since version control can identify conflicting changes, i.e. incompatible changes made to the same lines of code, there is less need for coordination among developers.
615:
might not result in an image file at all. The second developer checking in the code will need to take care with the merge, to make sure that the changes are compatible and that the merge operation does not introduce its own
437:) with branches off of this, forming a directed tree, visualized as one or more parallel lines of development (the "mainlines" of the branches) branching off a trunk. In reality the structure is more complicated, forming a 1438:
Contributions to a source code repository that uses a distributed version control system are commonly made by means of a pull request, also known as a merge request. The contributor requests that the project maintainer
798:
A core benefit is the ability to keep history and revert changes, allowing the developer to easily undo changes. This gives the developer more opportunity to experiment, eliminating the fear of breaking existing code.
599:
Most version control systems allow multiple developers to edit the same file at the same time. The first developer to "check in" changes to the central repository always succeeds. The system may provide facilities to
639:
Most revision control tools will use only one of these similar terms (baseline, label, tag) to refer to the action of identifying a snapshot ("label the project") or the record of the snapshot ("try it with baseline
775:
Costs and benefits will vary dependent upon the version control tool chosen and the field in which it is applied. This section speaks to the field of software development, where version control is widely applied.
234:
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 (
2461:
without even realizing it. Using these systems allows you to check files out for modifications, then, during check-in, if the files have been changed by another user, you will be alerted and allowed to merge them.
820:
There can be damage mitigation, accountability, process and design improvement, and other benefits associated with the record keeping provided by version control, the tracking of who did what, when, why, and how.
457:. If there is branching, so multiple future revisions are based on a past revision, or undoing, so a revision can depend on a revision older than its immediate predecessor, then the resulting graph is instead a 581:" copies of those files. Once one developer "checks out" a file, others can read that file, but no one else may change that file until that developer "checks in" the updated version (or cancels the checkout). 1514:. Some of the metadata that a repository contains includes, among other things, a historical record of changes in the repository, a set of commit objects, and a set of references to commit objects, called 322:
software update tool dates back to 1962, arguably a precursor to version control system tools. Two source management and version control packages that were heavily used by IBM 360/370 installations were
1358:
automatically merges the files (typically, after prompting the user if it should proceed with the automatic merge, and in some cases only doing so if the merge can be clearly and reasonably resolved).
2863: 1674:
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
1128:) is to write or merge the changes made in the working copy back to the repository. A commit contains metadata, typically the author information and a commit message that describes the change. 338:
for the same system (OS/360). Source Code Control System's introduction, having been published on December 4, 1975, historically implied it was the first deliberate revision control system.
413:, no single repository is authoritative, and data can be checked out and checked into any repository. When checking into a different repository, this is interpreted as a merge or patch. 1389:
The act of copying file content from a less controlled location into a more controlled location. For example, from a user's workspace into a repository, or from a stream to its parent.
1226:, this refers to the most recent commit, either to the trunk or to a branch. The trunk and each branch have their own head, though HEAD is sometimes loosely used to refer to the trunk. 453:
terms, drawing each revision as a point and each "derived revision" relationship as an arrow (conventionally pointing from older to newer, in the same direction as time), this is a
2502:
Cortes-Coy, Luis Fernando; Linares-Vasquez, Mario; Aponte, Jairo; Poshyvanyk, Denys (2014). "On Automatically Generating Commit Messages via Summarization of Source Code Changes".
2431:
The git bisect tool is an incredibly helpful debugging tool used to find which specific commit was the first one to introduce a bug or problem by doing an automatic binary search.
1588:
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. See
2448: 2301: 2284:
In terms of man hours it's going to cost you 6 to 48 times what it would have cost you using version control, and that's for rewinding a couple of models for a single developer.
445:
case, with no branching or undoing, each revision is based on its immediate predecessor alone, and they form a simple line, with a single latest version, the "HEAD" revision or
229:
As teams develop software, it is common for multiple versions of the same software to be deployed in different sites and for the developers to work simultaneously on updates.
3160: 1376:, a problem that existed before the branching is fixed in one branch, and the fix is then merged into the other branch. (This type of selective merge is sometimes known as a 1293:
a file, no one else can update that file until it is unlocked. Locking can be supported by the version control system, or via informal communications between developers (aka
620:
errors within the files. These problems limit the availability of automatic or semi-automatic merge operations mainly to simple text-based documents, unless a specific merge
1190:
except that it creates a clean directory tree without the version-control metadata used in a working copy. This is often used prior to publishing the contents, for example.
2962: 982:) represents a specific modification to a document under version control. The granularity of the modification considered a change varies between version control systems. 250:
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.
2686:: ‘The G stands for merGed, which means that the file had local changes to begin with, but the changes coming from the repository didn't overlap with the local changes.’ 2659: 2402:
If an error is made, developers can go back in time and review prior iterations of the code to remedy the mistake while minimizing disturbance for all team members.
1555:
The act of making one file or folder available in multiple branches at the same time. When a shared file is changed in one branch, it is changed in other branches.
3193: 425:
Example history graph of a revision-controlled project; trunk is in green, branches in yellow, and graph is not a tree due to presence of merges (the red arrows).
2893: 958:
at a point in time so that, from that time forward, two copies of those files may develop at different speeds or in different ways independently of each other.
855:
Some of the more advanced revision-control tools offer many other facilities, allowing deeper integration with other tools and software-engineering processes.
1020:
made in a single commit. This can also represent a sequential view of the source code, allowing the examination of source as of any particular changelist ID.
3539: 2064: 1710: 2855: 2331: 319: 1167:, which retains only the differences between successive versions of files. This allows for more efficient storage of many different versions of files. 2390: 2361: 2272: 740:
Each working copy effectively functions as a remote backup of the codebase and of its change-history, providing inherent protection against data loss.
717:
approach of centralized systems. Rather than a single, central repository on which clients synchronize, each peer's working copy of the codebase is a
269:
systems. This gives system administrators another way to easily track changes made and a way to roll back to earlier versions should the need arise.
1963: 1936: 732:
Common operations (such as commits, viewing history, and reverting changes) are fast, because there is no need to communicate with a central server.
1450:
The developer creates a pull request to notify maintainers of a new change; a comment thread is associated with each pull request. This allows for
2833: 2419: 3490: 3296: 3030: 2955: 1705: 659:
In most projects, some snapshots are more significant than others, such as those used to indicate published releases, branches, or milestones.
324: 313: 2490:
There are continued discussions on using rebase, merge, and/or squash. I want to bring focus to the point of all these choices, communicating.
3534: 2519: 2478: 2187: 2124: 1839: 1145:
A conflict occurs when different parties make changes to the same document, and the system is unable to reconcile the changes. A user must
3398: 2177: 919: 694: 3199: 2444: 2297: 1962:(Interview). Interviewed by Thomas Haigh. Washington, D.C.: Charles Babbage Institute, University of Minnesota. pp. 3, 5, 12–13. 867: 2632: 2948: 2554: 2098: 1735: 180: 133: 1454:. Submitted pull requests are visible to anyone with repository access. A pull request can be accepted or rejected by maintainers. 374:, instead consider changes to the data as a whole, which is less intuitive for simple changes but simplifies more complex changes. 3529: 3524: 3497: 3483: 1935:(Interview). Interviewed by Jeffrey R. Yost. Washington, D.C.: Charles Babbage Institute, University of Minnesota. pp. 5–7. 1725: 218: 67: 2809: 484:
In the presence of merges, the resulting graph is no longer a tree, as nodes can have multiple parents, but is instead a rooted
3065: 2580: 1365:
is created, the code in the files is independently edited, and the updated branch is later incorporated into a single, unified
604:
further changes into the central repository, and preserve the changes from the first developer when other developers check in.
421: 31: 114: 3229: 1676: 759:
commit description or the code; and using a consistent branching strategy. Other best software development practices such as
534:
Traditional revision control systems use a centralized model where all the revision control functions take place on a shared
71: 2130: 1237:
is the act of copying a local directory tree (that is not currently a working copy) into the repository for the first time.
86: 1510:, the whole set of information in the repository may be duplicated on every user's system or may be maintained on a single 631:
can provide an optional means to explicitly lock a file for exclusive write access, even when a merging capability exists.
2997: 1878: 1654:
in revision control systems that require each repository to have exactly one working copy (common in distributed systems)
1331:
is an operation in which two sets of changes are applied to a file or set of files. Some sample scenarios are as follows:
887: 3464: 2651: 1479: 1472: 1080: 945: 578: 410: 351: 235: 93: 3449: 3408: 3403: 3252: 3236: 1720: 1431: 708: 2885: 2216: 607:
Merging two files can be a very delicate operation, and usually possible only if the data structure is simple, as in
2616: 505:
Engineering revision control developed from formalized processes based on tracking revisions of early blueprints or
3087: 3011: 1503: 343: 335: 2544: 2243: 2028: 807:
Branching assists with deployment. Branching and merging, the production, packaging, and labeling of source code
1104: 1097: 207: 100: 2683: 1547:
is any change in form. In SVK, a Revision is the state at a point in time of the entire tree in the repository.
469:
Conversely, when a revision can be based on more than one previous revision (when a node can have more than one
194:
that automates version control. Alternatively, version control is embedded as a feature of some systems such as
3519: 3420: 1318: 755: 690: 601: 475: 2327: 1845: 714: 366:
Revision control manages changes to a set of data over time. These changes can be structured in various ways.
304:
and the person making the change. Revisions can be compared, restored, and, with some types of files, merged.
3454: 3361: 3141: 3005: 1784:
The revision or repository "tree" should not be confused with the directory tree of files in a working copy.
1610:
is the unique line of development that is not a branch (sometimes also called Baseline, Mainline or Master)
594: 523: 339: 82: 60: 38: 2386: 2373:
Software teams can understand the evolution of a solution by examining prior versions through code reviews.
2357: 2268: 2217:"Comments on Open Source Software / Free Software (OSS/FS) Software Configuration Management (SCM) Systems" 1910: 2602: 1745: 1458: 485: 438: 2919: 3370: 3223: 1084: 682:
usually refer to the mechanism within the tool of identifying or making the record of the snapshot, and
725:(change-sets) from peer to peer. This results in some important differences from a centralized system: 2829: 2415: 3022: 1715: 1257:, a method that allows storing the history of text based files in a more efficient way than by using 751: 162: 1047:
means creating a repository containing the revisions from another repository. This is equivalent to
3355: 3335: 3145: 3135: 3131: 1793:
If a new branch is based on HEAD, then topologically HEAD is no longer a tip, since it has a child.
1740: 1544: 1527:
The act of user intervention to address a conflict between different changes to the same document.
1487: 879: 863: 621: 254: 2474: 3437: 3153: 2525: 2163: 2056: 2009: 1730: 1511: 1254: 991: 764: 535: 2787: 1055:
ing into an empty (newly initialized) repository. As a noun, two repositories can be said to be
924:
An approved revision of a document or source file to which subsequent changes can be made. See
736:
Rather, communication is only necessary when pushing or pulling changes to or from other peers.
409:
and check-outs and check-ins done with reference to this central repository. Alternatively, in
3303: 3275: 3105: 2550: 2515: 2183: 2120: 2116:
Version Control with Git: Powerful Tools and Techniques for Collaborative Software Development
2094: 2048: 1835: 1499: 1258: 1164: 1158: 1012: 871: 808: 722: 570: 347: 272:
Many version control systems identify the version of a file as a number or letter, called the
211: 1765:
In this case, edit buffers are a secondary form of working copy, and not referred to as such.
1535:
The process of merging different team branches into the main trunk of the versioning system.
107: 3217: 2507: 2040: 2001: 1607: 1601: 713:
Distributed revision control systems (DRCS) take a peer-to-peer approach, as opposed to the
405:
Revision control systems are often centralized, with a single authoritative data store, the
239: 1646:
is also the term used by some CM tools (CM+, PLS, SMS) for the change package concept (see
3444: 3174: 2636: 2620: 2159: 1149:
the conflict by combining the changes, or by selecting one change in favour of the other.
1175:
A stream in which some or all file versions are mirrors of the parent stream's versions.
2856:"GitHub to replace master with main starting in October: What developers need to do now" 2765: 2504:
2014 IEEE 14th International Working Conference on Source Code Analysis and Manipulation
3432: 3187: 1690: 978: 526:), supplanting the "manual" electronic implementation of traditional revision control. 195: 17: 2980:
Years, where available, indicate the date of first stable release. Systems with names
1638:) merges changes made in the repository (by other people, for example) into the local 1343:
their working copy with changes made, and checked into the repository, by other users.
556:
if the system is left in a consistent state even if the operation is interrupted. The
3513: 3181: 3167: 2154:, for some of the manual systems in place in the twentieth century, for example, the 2087: 883: 875: 547: 458: 191: 166: 2591: 2013: 1986: 910:
Terminology can vary from system to system, but some terms in common usage include:
729:
No canonical, reference copy of the codebase exists by default; only working copies.
381:
this is not in general immediately reflected in the revision control system (in the
3469: 3425: 3211: 2711: 2060: 1580: 1573: 1289: 1282: 574: 454: 450: 430: 399: 230: 165:
practice of controlling, organizing, and tracking different versions in history of
2930: 2529: 1959: 1932: 2114: 402:
or simply avoiding working on the same document that someone else is working on.
30:"Source control" redirects here. For other uses in medicine and environment, see 3377: 3122: 1872: 1868: 1451: 902:(via vc.el). Advanced research prototypes generate appropriate commit messages. 760: 721:
repository. Distributed revision control conducts synchronization by exchanging
199: 170: 49: 2740: 377:
When data that is under revision control is modified, after being retrieved by
3323: 3282: 2151: 1700: 1490:. Depending on whether the version control system in use is distributed, like 1461:
tool, and the reviewer checks that any new code has appropriate test coverage.
718: 612: 506: 173: 2445:"A Review of Software Version Control: Systems, Benefits, and Why it Matters" 2298:"A Review of Software Version Control: Systems, Benefits, and Why it Matters" 2052: 2005: 1775:
separate lines, one per repository or branch (or branch within a repository).
1443:
the source code change, hence the name "pull request". The maintainer has to
3415: 3329: 3268: 1695: 1495: 1447:
the pull request if the contribution should become part of the source base.
1076: 1069: 899: 608: 301: 203: 2940: 2044: 936:
A search for the author and revision that last modified a particular line.
2220: 3459: 3316: 3205: 3036: 2613: 2511: 1507: 1483: 891: 656:
is used in documentation or discussion; they can be considered synonyms.
519: 441:, but for many purposes "tree with merges" is an adequate approximation. 328: 1186:
is the act of obtaining the files from the repository. It is similar to
346:. The next generation after Concurrent Versions System was dominated by 2560: 577:
so that only one developer at a time has write access to the central "
2166:; see also the approval procedures instituted by the U.S. government. 1906: 37:"Revision control system" redirects here. For the software tool, see 816:
Damage mitigation, accountability and process and design improvement
334:
A full system designed for source code control was started in 1972,
2734: 2732: 1829: 1083:
unit, an indivisible set, by version control systems. This is one
433:, revisions are generally thought of as a line of development (the 3289: 3093: 895: 617: 420: 314:
Comparison of version control software § History and adoption
1900: 1059:
s if they are kept synchronized, and contain the same revisions.
3099: 3049: 3042: 2679: 1802:"Mainline" can also refer to the main path in a separate branch. 1380:
to distinguish it from the complete merge in the previous case.)
972: 686:
indicates the increased significance of any given label or tag.
266: 238:), while the other version is where new features are worked on ( 2944: 767:
may assist in the following of version control best practices.
3309: 1491: 371: 355: 43: 1350:
files that have been updated by others since the files were
803:
Branching simplifies deployment, maintenance and development
292:. For example, the first version of a file might be version 2984:
are no longer maintained or have planned end-of-life dates.
2085:
Collins-Sussman, Ben; Fitzpatrick, BW; Pilato, CM (2004),
217:
Version control includes viewing old versions and enables
2387:"What Is Version Control? Meaning, Tools, and Advantages" 2358:"What Is Version Control? Meaning, Tools, and Advantages" 1457:
an automated test suite on every pull request, using a
481:
merge, and require manual intervention or rewriting.
754:
include: making incremental, small, changes; making
3391: 3345: 3260: 3251: 3115: 3080: 3073: 3021: 2996: 2989: 74:. Unsourced material may be challenged and removed. 2086: 1397:Copy revisions from one repository into another. 1401:is initiated by the receiving repository, while 1210:The process of merging changes made in the main 342:followed just after, with its networked version 2418:(Version 2.1.395-2-g27002dd ed.). Apress. 1589: 1309:, but there can be a mainline for each branch. 925: 296:. When the file is changed the next version is 2886:"Why GitHub renamed its master branch to main" 2680:Collins-Sussman, Fitzpatrick & Pilato 2004 2244:"What are Git version control best practices?" 2162:, each revision of which required approval by 2956: 2830:"Version control concepts and best practices" 1214:into a development (feature or team) branch. 847:aspects of the software development process. 8: 1711:Comparison of source-code-hosting facilities 950:A set of files under version control may be 2699:(Version 4.7 ed.). Accurev. July 2008. 2652:"Trunk vs. HEAD in Version Control Systems" 2328:"What Are The Benefits Of Version Control?" 2113:Loeliger, Jon; McCullough, Matthew (2012). 1823: 1821: 1819: 1432:Distributed version control § Pull requests 253:Revision control may also track changes to 3257: 3077: 2993: 2963: 2949: 2941: 2414:Chacon, Scott; Straub, Ben (2022-10-03). 1994:IEEE Transactions on Software Engineering 825:examination of code and commit messages. 134:Learn how and when to remove this message 838:Improves collaboration and communication 2710:Sijbrandij, Sytse (29 September 2014). 2635:. Better SCM Initiative. Archived from 2269:"The cost of not using version control" 2182:. "O'Reilly Media, Inc.". p. 301. 1966:from the original on September 26, 2024 1939:from the original on September 26, 2024 1815: 1758: 674:are used together in the same context, 2196:from the original on 26 September 2024 1706:Comparison of version-control software 518:the electronic tracking of changes to 27:Activity of managing versions of files 2656:Java, Eclipse, and other tech tidbits 990:On many version control systems with 644:"). Typically only one of the terms 473:), the resulting process is called a 7: 2385:Chiradeep BasuMallick (2022-10-06). 2356:Chiradeep BasuMallick (2022-10-06). 2029:"Rcs — a system for version control" 1848:from the original on 8 December 2019 1253:Some revision control software uses 1163:Most revision control software uses 300:. Each version is associated with a 257:, such as those typically stored in 72:adding citations to reliable sources 3540:Distributed version control systems 2918:"Visual Guide to Version Control", 2633:"Version Control System Comparison" 2267:Alessandro Picarelli (2020-11-17). 1899:Scott, Chacon; Straub, Ben (2014). 1834:. Sebastopol: O'Reilly Media, Inc. 1409:is sometimes used as a synonym for 1335:A user, working on a set of files, 1245:To create a new, empty repository. 920:Baseline (configuration management) 569:The simplest method of preventing " 2650:Gregory, Gary (February 3, 2011). 2603:UnderstandingMercurial - Mercurial 1960:"An Interview with Joseph Piscopo" 1452:focused discussion of code changes 859:Integrated development environment 370:Accordingly, some systems such as 179:Version control is a component of 176:, but generally any type of file. 25: 2937:. The basics of version control. 2739:Johnson, Mark (8 November 2013). 2033:Software: Practice and Experience 1736:Software configuration management 624:is available for the file types. 181:software configuration management 3064: 2119:. O'Reilly Media. pp. 2–5. 1987:"The Source Code Control System" 1933:"An Interview with Martin Goetz" 1726:List of version-control software 1482:is a data structure that stores 1471:This section is an excerpt from 1430:This section is an excerpt from 1068:This section is an excerpt from 48: 2896:from the original on 2022-05-26 2866:from the original on 2021-02-08 2836:from the original on 2020-04-27 2662:from the original on 2020-09-20 2481:from the original on 2022-11-19 2451:from the original on 2024-09-26 2422:from the original on 2024-09-26 2393:from the original on 2022-11-19 2364:from the original on 2022-11-19 2334:from the original on 2022-11-22 2304:from the original on 2024-09-26 2275:from the original on 2022-11-19 2133:from the original on 2024-09-26 2089:Version Control with Subversion 2067:from the original on 2024-09-26 1958:Piscipo, Joseph (May 3, 2002). 1913:from the original on 2015-12-25 1881:from the original on 2022-10-06 1831:Mercurial: the Definitive Guide 1075:In version control software, a 611:. The result of a merge of two 59:needs additional citations for 32:Source control (disambiguation) 2929:Sink, Eric, "Source Control", 2884:Heinze, Carolyn (2020-11-24). 2473:Jesse Phillips (2019-01-21) . 2150:For Engineering drawings, see 1478:In version control systems, a 221:a file to a previous version. 1: 2475:"Git is a Communication tool" 2176:Smart, John Ferguson (2008). 1931:Goetz, Martin (May 3, 2002). 3535:Software development process 2581:changeset in the gitglossary 1874:See what's changed in a file 1473:Repository (version control) 1405:is initiated by the source. 946:Branching (revision control) 794:Allows for reverting changes 703:Distributed revision control 411:distributed revision control 352:distributed revision control 2854:Wallen, Jack (2020-09-22). 2684:1.5: SVN tour cycle resolve 2592:revision in the gitglossary 2443:Irma Azarian (2023-06-14). 2296:Irma Azarian (2023-06-14). 2152:Whiteprint#Document control 1721:Distributed version control 709:Distributed version control 3556: 2506:. IEEE. pp. 275–284. 1985:Rochkind, Marc J. (1975). 1828:O'Sullivan, Bryan (2009). 1599: 1590:baselines, labels and tags 1571: 1470: 1429: 1316: 1280: 1156: 1095: 1067: 943: 926:baselines, labels and tags 917: 706: 689:Most formal discussion of 635:Baselines, labels and tags 592: 545: 350:, followed by the rise of 344:Concurrent Versions System 336:Source Code Control System 311: 208:content management systems 36: 29: 3478: 3062: 2978: 2741:"What is a pull request?" 2619:January 15, 2010, at the 2027:Tichy, Walter F. (1985). 1630:can also mean a combined 1356:revision control software 1098:Commit (revision control) 2972:Version control software 2006:10.1109/TSE.1975.6312866 1319:Merge (revision control) 994:multi-change commits, a 866:are often available for 691:configuration management 530:Source-management models 212:Knowledge's page history 3530:Technical communication 3525:Version control systems 3200:Software Change Manager 2788:"Making a Pull Request" 2543:Wingerd, Laura (2005). 1498:, or centralized, like 595:Merge (version control) 524:product data management 385:), but must instead be 39:Revision Control System 18:Revision control system 2326:ReQtest (2020-10-26). 2156:Engineering Procedures 2045:10.1002/spe.4380150703 1902:Pro Git Second Edition 1746:Versioning file system 1486:for a set of files or 1459:continuous integration 1222:Also sometimes called 1016:identifies the set of 501:Specialized strategies 486:directed acyclic graph 439:directed acyclic graph 426: 188:version control system 159:source code management 2766:"Using pull requests" 1085:synchronization model 424: 2614:Mercurial: ChangeSet 2512:10.1109/scam.2014.14 1716:Data version control 1539:Revision and version 829:Simplifies debugging 752:software development 573:" problems involves 163:software engineering 68:improve this article 2223:on November 9, 2020 1741:Software versioning 1650:). Synonymous with 1531:Reverse integration 1488:directory structure 1206:Forward integration 662:When both the term 513:In Business and Law 255:configuration files 2546:Practical Perforce 2164:Lawrence A. Hyland 1731:Non-linear editing 1662:Releasing a lock. 1372:A set of files is 1255:Interleaved deltas 1249:Interleaved deltas 906:Common terminology 771:Costs and benefits 765:regression testing 427: 3507: 3506: 3433:Delta compression 3387: 3386: 3247: 3246: 3237:Visual SourceSafe 3090:(1986, 1990 in C) 3060: 3059: 2521:978-1-4799-6148-1 2189:978-1-4919-5454-6 2126:978-1-4493-4504-4 1905:. United States: 1841:978-0-596-55547-4 1287:When a developer 1259:Delta compression 1165:delta compression 1159:Delta compression 1153:Delta compression 1116:or, more rarely, 872:Oracle JDeveloper 627:The concept of a 571:concurrent access 542:Atomic operations 144: 143: 136: 118: 83:"Version control" 16:(Redirected from 3547: 3364:(via Git) (2014) 3358:(via Git) (2013) 3261:Free/open-source 3258: 3081:Free/open-source 3078: 3068: 2998:Free/open-source 2994: 2965: 2958: 2951: 2942: 2936: 2924: 2921:Better explained 2905: 2904: 2902: 2901: 2881: 2875: 2874: 2872: 2871: 2851: 2845: 2844: 2842: 2841: 2826: 2820: 2819: 2817: 2816: 2806: 2800: 2799: 2797: 2795: 2784: 2778: 2777: 2775: 2773: 2762: 2756: 2755: 2753: 2751: 2736: 2727: 2726: 2724: 2722: 2707: 2701: 2700: 2693: 2687: 2677: 2671: 2670: 2668: 2667: 2647: 2641: 2640: 2629: 2623: 2611: 2605: 2600: 2594: 2589: 2583: 2578: 2572: 2571: 2569: 2568: 2559:. Archived from 2540: 2534: 2533: 2499: 2493: 2492: 2487: 2486: 2470: 2464: 2463: 2457: 2456: 2440: 2434: 2433: 2428: 2427: 2411: 2405: 2404: 2399: 2398: 2382: 2376: 2375: 2370: 2369: 2353: 2347: 2346: 2340: 2339: 2323: 2317: 2316: 2310: 2309: 2293: 2287: 2286: 2281: 2280: 2264: 2258: 2257: 2255: 2254: 2239: 2233: 2232: 2230: 2228: 2219:. Archived from 2215:Wheeler, David. 2212: 2206: 2205: 2203: 2201: 2179:Java Power Tools 2173: 2167: 2148: 2142: 2141: 2139: 2138: 2110: 2104: 2103: 2092: 2082: 2076: 2075: 2073: 2072: 2024: 2018: 2017: 1991: 1982: 1976: 1975: 1973: 1971: 1955: 1949: 1948: 1946: 1944: 1928: 1922: 1921: 1919: 1918: 1896: 1890: 1888: 1887: 1886: 1864: 1858: 1857: 1855: 1853: 1825: 1803: 1800: 1794: 1791: 1785: 1782: 1776: 1772: 1766: 1763: 1602:Trunk (software) 1346:A user tries to 552:An operation is 264: 260: 202:, collaborative 151:revision control 139: 132: 128: 125: 119: 117: 76: 52: 44: 21: 3555: 3554: 3550: 3549: 3548: 3546: 3545: 3544: 3520:Version control 3510: 3509: 3508: 3503: 3474: 3445:File comparison 3383: 3341: 3243: 3111: 3100:QVCS Enterprise 3069: 3056: 3017: 2985: 2974: 2969: 2928: 2917: 2914: 2909: 2908: 2899: 2897: 2883: 2882: 2878: 2869: 2867: 2853: 2852: 2848: 2839: 2837: 2828: 2827: 2823: 2814: 2812: 2808: 2807: 2803: 2793: 2791: 2786: 2785: 2781: 2771: 2769: 2764: 2763: 2759: 2749: 2747: 2738: 2737: 2730: 2720: 2718: 2709: 2708: 2704: 2697:Concepts Manual 2695: 2694: 2690: 2678: 2674: 2665: 2663: 2649: 2648: 2644: 2631: 2630: 2626: 2621:Wayback Machine 2612: 2608: 2601: 2597: 2590: 2586: 2579: 2575: 2566: 2564: 2557: 2542: 2541: 2537: 2522: 2501: 2500: 2496: 2484: 2482: 2472: 2471: 2467: 2454: 2452: 2442: 2441: 2437: 2425: 2423: 2413: 2412: 2408: 2396: 2394: 2384: 2383: 2379: 2367: 2365: 2355: 2354: 2350: 2337: 2335: 2325: 2324: 2320: 2307: 2305: 2295: 2294: 2290: 2278: 2276: 2266: 2265: 2261: 2252: 2250: 2241: 2240: 2236: 2226: 2224: 2214: 2213: 2209: 2199: 2197: 2190: 2175: 2174: 2170: 2160:Hughes Aircraft 2149: 2145: 2136: 2134: 2127: 2112: 2111: 2107: 2101: 2084: 2083: 2079: 2070: 2068: 2026: 2025: 2021: 1989: 1984: 1983: 1979: 1969: 1967: 1957: 1956: 1952: 1942: 1940: 1930: 1929: 1925: 1916: 1914: 1898: 1897: 1893: 1884: 1882: 1877:, Google Inc., 1866: 1865: 1861: 1851: 1849: 1842: 1827: 1826: 1817: 1812: 1807: 1806: 1801: 1797: 1792: 1788: 1783: 1779: 1773: 1769: 1764: 1760: 1755: 1750: 1686: 1668: 1660: 1616: 1604: 1598: 1576: 1570: 1561: 1553: 1541: 1533: 1525: 1520: 1519: 1476: 1468: 1463: 1462: 1435: 1427: 1417:followed by an 1413:, or to mean a 1395: 1387: 1321: 1315: 1303: 1285: 1279: 1267: 1251: 1243: 1232: 1220: 1208: 1196: 1181: 1173: 1161: 1155: 1143: 1134: 1100: 1094: 1089: 1088: 1073: 1065: 1042: 1026: 988: 964: 948: 942: 934: 922: 916: 908: 861: 853: 840: 831: 818: 805: 796: 791: 782: 773: 747: 711: 705: 637: 597: 591: 589:Version merging 567: 550: 544: 532: 515: 503: 419: 417:Graph structure 364: 316: 310: 282:revision number 262: 258: 227: 196:word processors 149:(also known as 147:Version control 140: 129: 123: 120: 77: 75: 65: 53: 42: 35: 28: 23: 22: 15: 12: 11: 5: 3553: 3551: 3543: 3542: 3537: 3532: 3527: 3522: 3512: 3511: 3505: 3504: 3502: 3501: 3494: 3487: 3479: 3476: 3475: 3473: 3472: 3467: 3462: 3457: 3452: 3447: 3442: 3441: 3440: 3430: 3429: 3428: 3418: 3413: 3412: 3411: 3401: 3395: 3393: 3389: 3388: 3385: 3384: 3382: 3381: 3375: 3367: 3366: 3365: 3359: 3349: 3347: 3343: 3342: 3340: 3339: 3333: 3327: 3321: 3313: 3307: 3301: 3293: 3287: 3279: 3273: 3264: 3262: 3255: 3249: 3248: 3245: 3244: 3242: 3241: 3233: 3227: 3221: 3215: 3209: 3203: 3197: 3191: 3188:Perforce Helix 3185: 3179: 3171: 3165: 3157: 3151: 3150: 3149: 3139: 3126: 3119: 3117: 3113: 3112: 3110: 3109: 3103: 3097: 3091: 3084: 3082: 3075: 3071: 3070: 3063: 3061: 3058: 3057: 3055: 3054: 3046: 3040: 3034: 3027: 3025: 3019: 3018: 3016: 3015: 3009: 3002: 3000: 2991: 2987: 2986: 2979: 2976: 2975: 2970: 2968: 2967: 2960: 2953: 2945: 2939: 2938: 2926: 2913: 2912:External links 2910: 2907: 2906: 2876: 2846: 2832:. 2018-03-03. 2821: 2801: 2779: 2757: 2728: 2702: 2688: 2672: 2642: 2639:on 2009-03-21. 2624: 2606: 2595: 2584: 2573: 2555: 2535: 2520: 2494: 2465: 2435: 2406: 2377: 2348: 2318: 2288: 2259: 2234: 2207: 2188: 2168: 2143: 2125: 2105: 2099: 2077: 2039:(7): 637–654. 2019: 2000:(4): 364–370. 1977: 1950: 1923: 1909:. p. 14. 1891: 1859: 1840: 1814: 1813: 1811: 1808: 1805: 1804: 1795: 1786: 1777: 1767: 1757: 1756: 1754: 1751: 1749: 1748: 1743: 1738: 1733: 1728: 1723: 1718: 1713: 1708: 1703: 1698: 1693: 1691:Change control 1687: 1685: 1682: 1667: 1664: 1659: 1656: 1615: 1612: 1600:Main article: 1597: 1594: 1572:Main article: 1569: 1566: 1560: 1557: 1552: 1549: 1540: 1537: 1532: 1529: 1524: 1521: 1477: 1469: 1467: 1464: 1436: 1428: 1426: 1423: 1394: 1391: 1386: 1383: 1382: 1381: 1370: 1359: 1344: 1317:Main article: 1314: 1311: 1302: 1299: 1295:social locking 1281:Main article: 1278: 1275: 1266: 1263: 1250: 1247: 1242: 1239: 1231: 1228: 1219: 1216: 1207: 1204: 1195: 1192: 1180: 1177: 1172: 1171:Dynamic stream 1169: 1157:Main article: 1154: 1151: 1142: 1139: 1133: 1132:Commit message 1130: 1096:Main article: 1093: 1090: 1074: 1066: 1064: 1061: 1041: 1038: 1025: 1022: 987: 984: 963: 960: 944:Main article: 941: 938: 933: 930: 918:Main article: 915: 912: 907: 904: 860: 857: 852: 849: 839: 836: 830: 827: 817: 814: 804: 801: 795: 792: 790: 787: 781: 778: 772: 769: 763:and automated 746: 745:Best practices 743: 742: 741: 734: 733: 730: 707:Main article: 704: 701: 693:uses the term 666:and either of 636: 633: 593:Main article: 590: 587: 566: 563: 546:Main article: 543: 540: 531: 528: 514: 511: 502: 499: 418: 415: 363: 360: 354:tools such as 309: 306: 290:revision level 274:version number 263:/usr/local/etc 226: 223: 167:computer files 155:source control 142: 141: 56: 54: 47: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 3552: 3541: 3538: 3536: 3533: 3531: 3528: 3526: 3523: 3521: 3518: 3517: 3515: 3500: 3499: 3495: 3493: 3492: 3488: 3486: 3485: 3481: 3480: 3477: 3471: 3468: 3466: 3463: 3461: 3458: 3456: 3453: 3451: 3448: 3446: 3443: 3439: 3436: 3435: 3434: 3431: 3427: 3424: 3423: 3422: 3419: 3417: 3414: 3410: 3407: 3406: 3405: 3402: 3400: 3397: 3396: 3394: 3390: 3379: 3376: 3373: 3372: 3368: 3363: 3360: 3357: 3354: 3353: 3352:Azure DevOps 3351: 3350: 3348: 3344: 3337: 3334: 3331: 3328: 3325: 3322: 3319: 3318: 3314: 3311: 3308: 3305: 3302: 3299: 3298: 3294: 3291: 3288: 3285: 3284: 3280: 3277: 3274: 3271: 3270: 3266: 3265: 3263: 3259: 3256: 3254: 3250: 3239: 3238: 3234: 3231: 3228: 3225: 3222: 3219: 3216: 3213: 3210: 3207: 3204: 3201: 3198: 3195: 3192: 3189: 3186: 3183: 3180: 3177: 3176: 3172: 3169: 3168:Dimensions CM 3166: 3163: 3162: 3158: 3155: 3152: 3147: 3143: 3140: 3137: 3133: 3130: 3129: 3128:Azure DevOps 3127: 3124: 3121: 3120: 3118: 3114: 3107: 3104: 3101: 3098: 3095: 3092: 3089: 3086: 3085: 3083: 3079: 3076: 3074:Client–server 3072: 3067: 3052: 3051: 3047: 3044: 3041: 3038: 3035: 3032: 3031:The Librarian 3029: 3028: 3026: 3024: 3020: 3013: 3010: 3007: 3004: 3003: 3001: 2999: 2995: 2992: 2988: 2983: 2977: 2973: 2966: 2961: 2959: 2954: 2952: 2947: 2946: 2943: 2934: 2933: 2927: 2923: 2922: 2916: 2915: 2911: 2895: 2891: 2890:TheServerSide 2887: 2880: 2877: 2865: 2861: 2857: 2850: 2847: 2835: 2831: 2825: 2822: 2811: 2805: 2802: 2789: 2783: 2780: 2767: 2761: 2758: 2746: 2742: 2735: 2733: 2729: 2717: 2713: 2712:"GitLab Flow" 2706: 2703: 2698: 2692: 2689: 2685: 2681: 2676: 2673: 2661: 2657: 2653: 2646: 2643: 2638: 2634: 2628: 2625: 2622: 2618: 2615: 2610: 2607: 2604: 2599: 2596: 2593: 2588: 2585: 2582: 2577: 2574: 2563:on 2007-12-21 2562: 2558: 2556:0-596-10185-6 2552: 2548: 2547: 2539: 2536: 2531: 2527: 2523: 2517: 2513: 2509: 2505: 2498: 2495: 2491: 2480: 2476: 2469: 2466: 2462: 2450: 2446: 2439: 2436: 2432: 2421: 2417: 2410: 2407: 2403: 2392: 2388: 2381: 2378: 2374: 2363: 2359: 2352: 2349: 2345: 2333: 2329: 2322: 2319: 2315: 2303: 2299: 2292: 2289: 2285: 2274: 2270: 2263: 2260: 2249: 2245: 2238: 2235: 2222: 2218: 2211: 2208: 2195: 2191: 2185: 2181: 2180: 2172: 2169: 2165: 2161: 2157: 2153: 2147: 2144: 2132: 2128: 2122: 2118: 2117: 2109: 2106: 2102: 2100:0-596-00448-6 2096: 2091: 2090: 2081: 2078: 2066: 2062: 2058: 2054: 2050: 2046: 2042: 2038: 2034: 2030: 2023: 2020: 2015: 2011: 2007: 2003: 1999: 1995: 1988: 1981: 1978: 1965: 1961: 1954: 1951: 1938: 1934: 1927: 1924: 1912: 1908: 1904: 1903: 1895: 1892: 1880: 1876: 1875: 1870: 1863: 1860: 1847: 1843: 1837: 1833: 1832: 1824: 1822: 1820: 1816: 1809: 1799: 1796: 1790: 1787: 1781: 1778: 1771: 1768: 1762: 1759: 1752: 1747: 1744: 1742: 1739: 1737: 1734: 1732: 1729: 1727: 1724: 1722: 1719: 1717: 1714: 1712: 1709: 1707: 1704: 1702: 1699: 1697: 1694: 1692: 1689: 1688: 1683: 1681: 1679: 1678: 1673: 1665: 1663: 1657: 1655: 1653: 1649: 1645: 1641: 1637: 1633: 1629: 1625: 1621: 1613: 1611: 1609: 1603: 1595: 1593: 1591: 1587: 1583: 1582: 1575: 1567: 1565: 1558: 1556: 1550: 1548: 1546: 1538: 1536: 1530: 1528: 1522: 1517: 1513: 1509: 1505: 1501: 1497: 1493: 1489: 1485: 1481: 1474: 1465: 1460: 1455: 1453: 1448: 1446: 1442: 1433: 1424: 1422: 1420: 1416: 1412: 1408: 1404: 1400: 1392: 1390: 1384: 1379: 1375: 1371: 1368: 1364: 1360: 1357: 1353: 1349: 1345: 1342: 1338: 1334: 1333: 1332: 1330: 1326: 1320: 1312: 1310: 1308: 1300: 1298: 1296: 1292: 1291: 1284: 1276: 1274: 1272: 1264: 1262: 1260: 1256: 1248: 1246: 1240: 1238: 1236: 1229: 1227: 1225: 1217: 1215: 1213: 1205: 1203: 1201: 1193: 1191: 1189: 1185: 1178: 1176: 1170: 1168: 1166: 1160: 1152: 1150: 1148: 1140: 1138: 1131: 1129: 1127: 1123: 1119: 1115: 1111: 1107: 1106: 1099: 1092:Commit (verb) 1091: 1086: 1082: 1078: 1071: 1063:Commit (noun) 1062: 1060: 1058: 1054: 1050: 1046: 1039: 1037: 1035: 1031: 1023: 1021: 1019: 1015: 1014: 1009: 1005: 1001: 997: 993: 985: 983: 981: 980: 975: 974: 969: 961: 959: 957: 953: 947: 939: 937: 931: 929: 927: 921: 913: 911: 905: 903: 901: 897: 893: 889: 885: 884:Visual Studio 881: 877: 876:IntelliJ IDEA 873: 869: 865: 858: 856: 850: 848: 844: 837: 835: 828: 826: 822: 815: 813: 810: 802: 800: 793: 788: 786: 779: 777: 770: 768: 766: 762: 757: 753: 744: 739: 738: 737: 731: 728: 727: 726: 724: 720: 716: 715:client–server 710: 702: 700: 698: 697: 692: 687: 685: 681: 677: 673: 669: 665: 660: 657: 655: 651: 647: 643: 634: 632: 630: 629:reserved edit 625: 623: 619: 614: 610: 605: 603: 596: 588: 586: 582: 580: 576: 575:locking files 572: 564: 562: 559: 555: 549: 548:Atomic commit 541: 539: 537: 529: 527: 525: 521: 512: 510: 508: 500: 498: 494: 491: 487: 482: 479: 477: 472: 468: 464: 460: 459:directed tree 456: 452: 448: 442: 440: 436: 432: 423: 416: 414: 412: 408: 403: 401: 395: 392: 388: 384: 380: 379:checking out, 375: 373: 367: 361: 359: 357: 353: 349: 345: 341: 337: 332: 330: 326: 325:The Librarian 321: 318:IBM's OS/360 315: 307: 305: 303: 299: 295: 291: 287: 283: 279: 275: 270: 268: 256: 251: 247: 243: 241: 237: 232: 224: 222: 220: 215: 213: 209: 205: 201: 197: 193: 192:software tool 189: 184: 182: 177: 175: 172: 168: 164: 160: 156: 152: 148: 138: 135: 127: 116: 113: 109: 106: 102: 99: 95: 92: 88: 85: –  84: 80: 79:Find sources: 73: 69: 63: 62: 57:This article 55: 51: 46: 45: 40: 33: 19: 3496: 3489: 3482: 3369: 3315: 3295: 3281: 3267: 3235: 3224:Team Concert 3212:Surround SCM 3173: 3159: 3048: 2981: 2971: 2931: 2920: 2898:. Retrieved 2889: 2879: 2868:. Retrieved 2860:TechRepublic 2859: 2849: 2838:. Retrieved 2824: 2813:. Retrieved 2804: 2792:. Retrieved 2782: 2770:. Retrieved 2760: 2748:. Retrieved 2744: 2719:. Retrieved 2715: 2705: 2696: 2691: 2675: 2664:. Retrieved 2655: 2645: 2637:the original 2627: 2609: 2598: 2587: 2576: 2565:. Retrieved 2561:the original 2549:. O'Reilly. 2545: 2538: 2503: 2497: 2489: 2483:. Retrieved 2468: 2459: 2453:. Retrieved 2438: 2430: 2424:. Retrieved 2409: 2401: 2395:. Retrieved 2380: 2372: 2366:. Retrieved 2351: 2342: 2336:. Retrieved 2321: 2312: 2306:. Retrieved 2291: 2283: 2277:. Retrieved 2262: 2251:. Retrieved 2247: 2237: 2225:. Retrieved 2221:the original 2210: 2198:. Retrieved 2178: 2171: 2155: 2146: 2135:. Retrieved 2115: 2108: 2093:, O'Reilly, 2088: 2080: 2069:. Retrieved 2036: 2032: 2022: 1997: 1993: 1980: 1968:. Retrieved 1953: 1941:. Retrieved 1926: 1915:. Retrieved 1901: 1894: 1883:, retrieved 1873: 1862: 1850:. Retrieved 1830: 1798: 1789: 1780: 1770: 1761: 1675: 1672:working copy 1671: 1669: 1666:Working copy 1661: 1651: 1647: 1643: 1640:working copy 1639: 1635: 1631: 1627: 1623: 1619: 1617: 1605: 1585: 1579: 1577: 1574:Revision tag 1562: 1554: 1542: 1534: 1526: 1515: 1449: 1444: 1440: 1437: 1425:Pull request 1418: 1414: 1410: 1406: 1402: 1398: 1396: 1388: 1377: 1373: 1366: 1362: 1355: 1351: 1347: 1340: 1336: 1328: 1324: 1322: 1306: 1304: 1294: 1288: 1286: 1283:File locking 1270: 1268: 1252: 1244: 1234: 1233: 1223: 1221: 1211: 1209: 1199: 1197: 1188:checking out 1187: 1183: 1182: 1174: 1162: 1146: 1144: 1135: 1125: 1121: 1117: 1113: 1109: 1103: 1101: 1056: 1052: 1048: 1044: 1043: 1033: 1029: 1027: 1017: 1011: 1007: 1003: 999: 995: 989: 977: 971: 967: 965: 955: 951: 949: 935: 923: 909: 892:NetBeans IDE 862: 854: 845: 841: 832: 823: 819: 806: 797: 783: 774: 748: 735: 712: 695: 688: 683: 679: 675: 671: 667: 663: 661: 658: 653: 649: 645: 641: 638: 628: 626: 606: 598: 583: 568: 565:File locking 557: 553: 551: 533: 516: 504: 495: 489: 483: 474: 470: 466: 462: 455:linear graph 451:graph theory 446: 443: 434: 431:graph theory 429:In terms of 428: 406: 404: 400:file locking 396: 390: 386: 382: 378: 376: 368: 365: 333: 317: 297: 293: 289: 285: 281: 277: 273: 271: 252: 248: 244: 228: 216: 200:spreadsheets 187: 185: 178: 169:; primarily 158: 154: 150: 146: 145: 130: 121: 111: 104: 97: 90: 78: 66:Please help 61:verification 58: 3438:Interleaved 3378:Plastic SCM 3346:Proprietary 3253:Distributed 3123:AccuRev SCM 3116:Proprietary 3023:Proprietary 2790:. Atlassian 2314:production. 1869:Google Docs 1852:4 September 1378:cherry pick 1352:checked out 1329:integration 1305:Similar to 996:change list 986:Change list 851:Integration 761:code review 613:image files 407:repository, 171:source code 3514:Categories 3491:Comparison 3465:Repository 3324:GNU Bazaar 3283:Code Co-op 3106:Subversion 2990:Local only 2982:in italics 2900:2022-04-24 2870:2022-04-24 2840:2020-07-10 2815:2012-04-20 2666:2012-12-16 2567:2006-08-27 2485:2022-11-18 2455:2022-11-18 2426:2022-11-18 2397:2022-11-18 2368:2022-11-18 2338:2022-11-21 2308:2022-11-18 2279:2022-11-18 2253:2022-11-11 2248:gitlab.com 2137:2023-03-22 2071:2023-12-28 1970:August 17, 1943:August 17, 1917:2022-02-19 1885:2021-04-21 1810:References 1701:Blockchain 1648:changelist 1500:Subversion 1480:repository 1466:Repository 1393:Pull, push 1354:, and the 1241:Initialize 1004:change set 609:text files 579:repository 391:committed. 387:checked in 383:repository 348:Subversion 312:See also: 174:text files 124:April 2011 94:newspapers 3416:Changeset 3330:Mercurial 3269:BitKeeper 3182:Integrity 3154:ClearCase 2810:"SVNBook" 2416:"Pro Git" 2053:0038-0644 1696:Changelog 1658:Unlocking 1496:Mercurial 1235:Importing 1184:Exporting 1077:changeset 1070:Changeset 1030:check out 900:GNU Emacs 719:bona-fide 520:CAD files 507:bluelines 467:mainline. 362:Structure 302:timestamp 219:reverting 161:) is the 3484:Category 3460:Monorepo 3399:Baseline 3392:Concepts 3371:TeamWare 3362:Services 3336:Monotone 3317:GNU arch 3206:StarTeam 3196:(1980s?) 3148:) (2014) 3142:Services 3138:) (2005) 3037:Panvalet 2935:(how-to) 2894:Archived 2864:Archived 2834:Archived 2794:27 March 2772:27 March 2768:. GitHub 2750:27 March 2745:Oaawatch 2721:4 August 2660:Archived 2617:Archived 2479:Archived 2449:Archived 2420:Archived 2391:Archived 2362:Archived 2332:Archived 2302:Archived 2273:Archived 2242:GitLab. 2194:Archived 2131:Archived 2065:Archived 2014:10006076 1964:Archived 1937:Archived 1911:Archived 1879:archived 1846:Archived 1684:See also 1652:checkout 1508:Perforce 1484:metadata 1374:branched 1348:check in 1301:Mainline 1141:Conflict 1110:check in 1024:Checkout 952:branched 914:Baseline 870:such as 789:Benefits 696:baseline 684:baseline 664:baseline 646:baseline 329:Panvalet 320:IEBUPDTE 286:revision 225:Overview 210:, e.g., 204:web docs 3218:Synergy 3202:(1970s) 3170:(1980s) 3039:(1970s) 2200:20 July 2061:2605086 1677:sandbox 1545:version 1523:Resolve 1385:Promote 1337:updates 1277:Locking 1147:resolve 1118:install 1051:ing or 1045:Cloning 1018:changes 880:Eclipse 864:Plugins 809:patches 756:commits 723:patches 308:History 278:version 108:scholar 3421:Commit 3404:Branch 3380:(2006) 3374:(1992) 3356:Server 3338:(2003) 3332:(2005) 3326:(2005) 3320:(2001) 3312:(2005) 3306:(2007) 3304:Fossil 3300:(2002) 3292:(2002) 3286:(1997) 3278:(2017) 3276:Breezy 3272:(2000) 3240:(1994) 3232:(2003) 3226:(2008) 3220:(1990) 3214:(2002) 3208:(1995) 3190:(1995) 3184:(2001) 3178:(1984) 3164:(1994) 3156:(1992) 3132:Server 3125:(2002) 3108:(2000) 3102:(1998) 3096:(1998) 3053:(1991) 3045:(1985) 3033:(1969) 3014:(1973) 3008:(1982) 2716:GitLab 2553:  2530:360545 2528:  2518:  2227:May 8, 2186:  2123:  2097:  2059:  2051:  2012:  1907:Apress 1838:  1644:Update 1626:, but 1620:update 1614:Update 1559:Stream 1512:server 1419:update 1363:branch 1230:Import 1179:Export 1126:record 1122:submit 1105:commit 1081:atomic 1008:update 992:atomic 968:change 962:Change 956:forked 940:Branch 898:, and 888:Delphi 622:plugin 558:commit 554:atomic 536:server 490:patch, 471:parent 236:branch 206:, and 157:, and 110:  103:  96:  89:  81:  3455:Merge 3426:Gated 3409:Trunk 3290:Darcs 3230:Vault 3144:(via 3134:(via 3094:CVSNT 2526:S2CID 2057:S2CID 2010:S2CID 1990:(PDF) 1753:Notes 1608:trunk 1596:Trunk 1586:label 1551:Share 1516:heads 1506:, or 1445:merge 1407:Fetch 1367:trunk 1341:syncs 1325:merge 1313:Merge 1307:trunk 1290:locks 1265:Label 1212:trunk 1194:Fetch 1057:clone 1040:Clone 1013:patch 1010:, or 979:delta 976:, or 932:Blame 896:Xcode 780:Costs 676:label 668:label 652:, or 650:label 618:logic 602:merge 522:(see 476:merge 463:trunk 449:. In 435:trunk 288:, or 240:trunk 190:is a 115:JSTOR 101:books 3498:List 3450:Fork 3297:DCVS 3194:SCLM 3175:DSEE 3161:CMVC 3146:TFVC 3136:TFVC 3050:QVCS 3043:PVCS 3012:SCCS 2796:2016 2774:2016 2752:2016 2723:2018 2551:ISBN 2516:ISBN 2229:2007 2202:2019 2184:ISBN 2121:ISBN 2095:ISBN 2049:ISSN 1998:SE-1 1972:2023 1945:2023 1854:2015 1836:ISBN 1670:The 1636:pull 1634:and 1632:push 1628:sync 1624:sync 1622:(or 1606:The 1441:pull 1415:pull 1411:pull 1403:push 1399:Pull 1269:See 1218:Head 1200:pull 1198:See 1053:pull 1049:push 1032:(or 998:(or 973:diff 970:(or 868:IDEs 678:and 327:and 267:Unix 259:/etc 231:Bugs 87:news 3470:Tag 3310:Git 3088:CVS 3006:RCS 2932:SCM 2508:doi 2158:of 2041:doi 2002:doi 1871:", 1642:. 1618:An 1584:or 1581:tag 1568:Tag 1504:CVS 1494:or 1492:Git 1339:or 1327:or 1297:). 1271:tag 1224:tip 1124:or 1102:To 1028:To 1002:), 954:or 680:tag 672:tag 670:or 654:tag 465:or 447:tip 389:or 372:Git 356:Git 340:RCS 265:on 261:or 242:). 214:. 70:by 3516:: 2892:. 2888:. 2862:. 2858:. 2743:. 2731:^ 2714:. 2682:, 2658:. 2654:. 2524:. 2514:. 2488:. 2477:. 2458:. 2447:. 2429:. 2400:. 2389:. 2371:. 2360:. 2341:. 2330:. 2311:. 2300:. 2282:. 2271:. 2246:. 2192:. 2129:. 2063:. 2055:. 2047:. 2037:15 2035:. 2031:. 2008:. 1996:. 1992:. 1844:. 1818:^ 1680:. 1592:. 1578:A 1543:A 1502:, 1421:. 1361:A 1323:A 1273:. 1261:. 1202:. 1120:, 1114:ci 1112:, 1034:co 1006:, 1000:CL 966:A 928:. 894:, 890:, 886:, 882:, 878:, 874:, 699:. 648:, 358:. 331:. 284:, 280:, 276:, 198:, 186:A 183:. 153:, 2964:e 2957:t 2950:v 2925:. 2903:. 2873:. 2843:. 2818:. 2798:. 2776:. 2754:. 2725:. 2669:. 2570:. 2532:. 2510:: 2256:. 2231:. 2204:. 2140:. 2074:. 2043:: 2016:. 2004:: 1974:. 1947:. 1920:. 1889:. 1867:" 1856:. 1518:. 1475:. 1434:. 1369:. 1108:( 1087:. 1072:. 642:X 478:, 298:2 294:1 137:) 131:( 126:) 122:( 112:· 105:· 98:· 91:· 64:. 41:. 34:. 20:)

Index

Revision control system
Source control (disambiguation)
Revision Control System

verification
improve this article
adding citations to reliable sources
"Version control"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
software engineering
computer files
source code
text files
software configuration management
software tool
word processors
spreadsheets
web docs
content management systems
Knowledge's page history
reverting
Bugs
branch
trunk
configuration files

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.