Chapter 7. Concepts in Version Control

Table of Contents

Fundamentals of Version Control
Files in Version Control
Working File
Version File
Version Numbers
Release Numbers
Revision Numbers
Branch Numbers
Tree Numbers
Locking
Locked
Unlocked
Strict Locking
Keywords

Fundamentals of Version Control

Abstract

As version control systems extend the possibilities of file systems, they also expand the concepts necessary to use the new facilities they provide. Those who recognize the purpose and benefits of version control tools should have no trouble understanding the foundation concepts. However, there is necessity of a certain amount of synthesized jargon with subtle and distinctive meanings. The following terminology provides skills to understand version control and not become confused by it. Learning these concepts will also better your chances of fully leveraging the features of version control.

Version Control Terms

Version

A version is a full copy of a file which represents the state, or composition, of a file at a certain point in time. Files change over time. When being edited users are encouraged to save their changes as they work. However, every save that modifies the file overwrites and loses the previous copy. Like saving, version control systems allows one to save copies of the file, allowing one to keep track of versions of the file that is edited.

Revision

A revision is formally defined as a change, correction or improvement. This is different from versions (see section on versions) because revisions are the products of revising while the products of revisions are versions.

Delta

A delta is a computer representation of the difference between two versions (see section on version) of a file; a computer usable revision (see section on revision). The delta is the literal representation of a revision. The delta usually isolates what differed in the file from what remained unchanged in the file. The unix operating system popularized, and the GNU System the use of text files on a line-by-line basis. Deltas are thus represented by the lines added, deleted or replaced.

In computer systems, the representation of a delta can be manifested in numerous ways. A representation may benefit humans by being easily readable. A delta representation may be designed to be stored efficiently by minimizing size. Or a delta representation may place priority in precision by emphasizing deltas that can be reliable or secure for application to other versions. Fortunately, the different advantages to delta types are not so much an issue to users of version control. Deltas give version control systems the ability to maintain revisionsof of a file. Deltas allow any previous version of a file. This should be redone, reorganized and verified.

Branches

Version control systems are well versed in storing the linear progression of changes to a file. They are also endowed to maintain disparate or different developments to a file. The ability for the changes to a file to pursue multiple paths is termed branching. The terminology of branches is obviously derived from trees of the plant kingdom whose limbs split and span into space in multiple directions. The same would be the case for thinking about a tree of versions for a file.

The ability to maintain branches in file revisions aids experimentation and allows multiple ways of editing a file. Branches also help with files that are released to or edited by multiple people. If two people make subsequent changes to the file, branches are necessary to track the revisions made.

In the case of distribution and file release of versions of a file, edts by others that are are put into version control should be added as a branch when the original author had continued making edits. These revisions submitted to the original author will need to be added as

Trunk

Branches (see section on branches) represent versions that develop separately from the main line of versions. This main line of versions are called trunk versions.

More could be added here