In this Article, we have explained the Most Common Terminologies in Revision Control System which are in current usage and important to software developers. In older article, we talked about Revision Control or Version Control in details. As an working example, how Apache Subversion works was discussed. Git, on the other hand is a free software for distributed version control of files which originally developed for source code management of the Linux kernel. The importance of knowing the most common terminologies used in revision control is quite important today with the advent of PaaS.
Common Terminologies in Revision Control : Understanding What is NOT explained
Common terminologies in revision control, be it central or distributed; are limited in number and same. Some of the more advanced revision-control tools offer many other facilities, allowing deeper integration with other tools and software-engineering processes. Terminologies, thereby can vary from system to system and neologism is not uncommon. Forking happens when developers take a copy of source code from one software package and start independent development on it – Origin of the word Fork is from Urban Lexicon, arrived during UNIX wars and became a good meaning.
Common Terminologies in Revision Control
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 develop at different speeds or in different ways independently of each other.
Change : A change (also 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 change list, change set, update, or patch identifies the set of changes 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.
Checkout : To check out (or co) 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.
Commit : To commit is to write or merge the changes made in the working copy back to the repository.
Conflict : A conflict occurs when different parties make changes to the same document, and the system is unable to reconcile the changes.
Delta compression : Most revision control software uses delta compression, which retains only the differences between successive versions of files.
Dynamic stream : A stream in which some or all file versions are mirrors of the parent stream’s versions.
Export : Exporting is the act of obtaining the files from the repository. It is similar to checking out except that it creates a clean directory tree without the version-control metadata used in a working copy.
Head : Also sometimes called tip, 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.
Import : Importing is the act of copying a local directory tree (that is not currently a working copy) into the repository for the first time.
Label : See tag.
Mainline : Similar to trunk, but there can be a mainline for each branch.
Merge : A merge or integration is an operation in which two sets of changes are applied to a file or set of files.
Promote : The act of copying file content from a less controlled location into a more controlled location.
Repository : The repository is where files’ current and historical data are stored, often on a server.
Resolve : The act of user intervention to address a conflict between different changes to the same document.
Reverse integration : The process of merging different team branches into the main trunk of the versioning system.
Revision also version : A version is any change in form.
Share : 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.
Stream : A container for branched files that has a known relationship to other such containers.
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. See baselines, labels and tags.
Trunk : The unique line of development that is not a branch (sometimes also called Baseline, Mainline or Master).
Update : An update (or sync) merges changes made in the repository (by other people, for example) 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.