SEPTEMBER/OCTOBER 2005 (Vol. 22, No. 5) p. 107
0740-7459/05/$31.00 © 2005 IEEE
Published by the IEEE Computer Society
Published by the IEEE Computer Society
Version Control, Part I
PDFs Require Adobe Acrobat
annotate: A command used for listing the latest version of each program's source code line, along with the date, the file version it was introduced, and the person who committed it.
backout : To undo the effects of a commit, often by introducing a new commit that restores things to their previous state.
bike shed discussion : A discussion about a simple and trivial issue where everybody can (and often does) have an opinion.
branch : A set of evolving source file versions. Every branch is identified by a tag. Often, a branch identifies the file versions that have been or will be released as a product release.
code freeze : A period during which noncritical changes to the code aren't allowed.
collapse : To terminate development on one branch by integrating it with another.
commit : To integrate the changes made to a developer's private view of the source code into a branch accessible through the version control system's repository.
commit message : An explanatory message accompanying a commit; often contains a brief description of the change and its rationale; names of contributors, reviewers, or approvers; a reference to third-party software from which the change was obtained; a schedule for integrating it to other branches; and a reference to the issue identifier associated with the change.
committer : A developer with commit privileges.
commit privileges : A person's authority to commit changes. Sometimes privileges are associated with a specific part of the product (for example, artwork or documentation) or a specific branch.
commit war : A series of conflicting and mutually reversing commits introduced by developers who disagree on how a particular element should be coded; sometimes starts with a hostile backout.
commit window : A time period during which commits are allowed for a specific branch. In some development environments, commit windows for a maintenance branch might only open for short periods a few times a year.
conflict : A change in one version of a file, which can't be reconciled with the version of the file to which it's applied; can occur when versions from different branches are merged or when two committers work concurrently on the same file.
development branch : The branch where active product development takes place. A product build from the development branch will have the latest features but will also likely be immature and unstable.
errata : Severe service-disrupting bugs for which there is no known workaround. Fixes for such bugs can often be introduced on a frozen branch.
feature branch : A branch created for developing a particular set of features. The branch is typically not released but is collapsed back at some point to its parent branch.
feature freeze : A period during which no new features are added to a specific branch; allows the branch to stabilize for a release.
frozen branch : A branch where no development takes place, either in preparation for a release or because active development has ceased on it.
head : The forefront of a branch, which contains the evolving versions of the source tree. A release coming out of head will have the newest features but will also likely be unstable.
hostile backout : A backout done without prior arrangement by a committer other than the one who introduced the original change. This is usually the opening shot in a commit war.
integrate : To pull in the changes from one child branch into its parent.
issue : A uniquely identifiable entry in an issue-tracking system that describes a problem or an enhancement. An issue's record, apart from its identifier and brief description, also often identifies the environment associated with it, its status, severity, priority, and resolution, as well as dependencies, details on replicating or solving a problem, the persons associated with it, attachments, and its change history.
lock : An exclusive permission to edit a file.