Not cyclic.

See Also cyclic.


Add a file or directory to the pending changeset; tell the VCS to begin tracking changes to a file or directory.

administrative area

Typically, a hidden directory within a working copy where the VCS stores state information.

atomic commit

A commit operation which entirely succeeds or entirely fails. In other words, no matter how many individual modifications are in the pending changeset, after the commit operation, the repository will either end up with all of them (if the operation is successful), or none of them (if the operation fails).


In Veracity, a record which stores when a changeset was created and the userid of the user who created it.


Term to express surprise or excitement; corruption of “Blind me”.


Binary Large Object; a sequence of bytes.

Bob’s your uncle

A commonly used British expression which indicates success at the end of a list of instructions.


See idiot’s lantern.


Short and easy-to-remember phone number of Samples Sales, Junior Samples’ fictional used car dealership on Hee Haw, an American variety television series.


Create another line of development.


The local dialect of Birmingham, England; bears a passing resemblance to English.


Residents or natives of Birmingham, England. Notable specimens include Neville Chamberlain, Ozzy Osbourne, Steve Winwood, Digby Jones, and Nathan Delfouneso.

burn down chart

In iteration based development, a diagram which shows the work completed and the predicted track for the tasks in the current iteration of the project.


A dialect of the C programming language, standardized by ISO and ANSI around 1999, over ten years ago, and yet, the Microsoft C compiler still doesn’t support it.

Cairo filesystem

An object filesystem which was never released, despite it being shown to attendees of the 1993 Microsoft Professional Developers Conference.

canonical stuff

Any piece of data which is not automatically derived from another piece of data.


Describes a version control system which requires an active connection with a single central server for most operations.


In Mercurial, the revlog which contains all the changesets for a repository.


A set of changes which should be treated as an indivisible group; the list of differences between one version of the repository tree and the next version.


A synonym for commit, used by some version control tools.


Create a working copy.


Pleased or delighted.


Create a new repository instance that is a copy of another.


In Veracity, the name of the area where repository instances are stored.


With respect to cryptographic hashes, when two different input values result in the same hash result.


Punctuation mark used primarily for separation of list entries and clauses; practically impossible to use consistently and the cause of many altercations between commaphiles and commaphobes.


Apply the modifications in the working copy to the repository as a new changeset.


To make a new revision of the repository by incorporating a new changeset.

continuous integration

The process of automatically building and testing a software project after every commit.

Crabapple Cove, Maine

The fictional home town of Hawkeye Pierce in M*A*S*H.


Create a new, empty repository.

cryptographic hash

A short digest (typically 160, 256, or 512 bits in length) which is computed from an arbitrarily large piece of data using an algorithm that makes it infeasible to create two different pieces of data with the same digest.


Centralized Version Control System; a general term used when referring to the class of version control systems which require a single central server.


Concurrent Versions System; a second generation version control tool which was extremely popular. With Subversion having largely succeeded in its goal of being “a compelling replacement for CVS”, most people in the industry would agree that CVS usage is in decline.


See looping.


directed acyclic graph.


In Veracity, a hexadecimal identifier for a DAG.


Plural form of datum; commonly used by authors as a singular noun, often over the objections of their editors.


Describes a version control system which allows each node to operate independently, without the need for active communication with a single central server.


The removal of duplicate copies of data through the use of cryptographic hashes.


The compression algorithm used by zlib. Veracity uses deflate for blob storage.


Delete a file or directory in the working copy, adding the deletion to the pending changeset.


An expression of the difference between two pieces of data.


Show the details of the modifications that have been made to the working copy.


A free (gratis) application for comparing and merging text files, created and distributed by SourceGear, supported on Mac, Windows, and Linux.


See cryptographic hash.

directed acyclic graph

A data structure with a series of nodes, each of which may have directed edges (arrows) pointing to other nodes, so long as the arrows never form a cycle.


The XML-based markup language I am using as I write this book. I do all of my editing of the XML file with vim. The DocBook XML is then processed with xsltproc and the docbook-xsl-1.76.1 stylesheets, which can generate a variety of formats. For the printed edition, the stylesheets generate an FO file which is converted to a press-ready PDF/X-1a file by Antenna House Formatter v5.3.

Don’t Panic!

The best advice given to humanity by Douglas Adams; also one of the catch phrases of Lance-Corporal Jones on the British comedy television series Dad’s Army.


Same as faff, if you’re a Brummie.


Decentralized (or Distributed) Version Control System; a general term used when referring to the class of version control systems which are decentralized.


Modify a file in the working copy. Some version control tools need to be explicitly notified that the user wants to modify a file or that a file has already been modified. Others detect modified files automatically.

eight-day clock

I have no idea what this means, but apparently Southern folks say it, and it sounds funny.


Current country and former nation-state formed from the unification of the Kingdoms of East Anglia, Essex, Kent, Mercia, Northumbira, Sussex, and Wessex. Home to numerous dialects and slang terms, and the country with the most sane rules for using punctuation with quotations.


To waste time.

feature branch

A branch which is used specifically for the development of one feature.


In Veracity, the name of an implementation of the repository storage API.


A fictional software company I made up for the examples in this book.


In Veracity, Global ID. The concatenation of the letter 'g' plus a type 4 UUID plus a type 1 UUID.


To repair.


The tip of a branch; a node on a named branch which has no children that are also members of the same named branch.


The name of the Mercurial command-line app.


In Veracity, Hash ID. A hexadecimal (all lower case) expression of a cryptographic hash.


“It’s a big building with patients, but that’s not important right now.”


Common appeal to a cricket umpire by a bowler or fielder; corruption of “How’s that?”.

idiot’s lantern

See telly.


A utility that reformats C code.


JavaScript Object Notation; a JavaScript-based syntax for representing objects with named properties and arrays.

Keep calm and carry on

Slogan on a British morale-boosting poster produced at the start of the Second World War.


Disturbance or disruption.


A synonym for tag, used by some version control tools.

landlady face

Facial expression like that of a landlady trying to collect overdue rent; indicative of displeasure or ill-humour.

last wicket

The dismissal of the tenth batsman, resulting in the end of a cricket innings.

leaf node

A DAG node which has no children.


Prevent other people from modifying a file.


A mechanism used to prevent other users from modifying a file.


Show the history of changes to the repository.


See cyclic.


In Mercurial, the list of all files in a revision of the repository.

master branch

The main line of development. In Mercurial this is called “default”.


Apply changes from one branch to another.

Combine two versions of a file or directory into one by appropriately incorporating the changes made in both versions.


Irritation or bother.


Move a file or directory in the working copy, adding the move operation to the pending changeset.

named branch

A named line of development within a version control DAG. Named branches allow multiple lines of development to exist within a single repository instance. An alternate style of branching with a DVCS is to keep one branch per repository instance, though this approach is considered less flexible.


State of annoyance or irritation.


To alter the history of a version control repository by completely removing something that was previously committed.

Ottumwa, Iowa

The non-fictional home town of Radar O’Reilly in M*A*S*H.


If a DAG node D is derived from DAG nodes B and C, then B and C are said to be the parents of D.

pending changeset

The changes which have been made to a working copy but which have not yet been committed to a repository instance.

plump turkey in November

Likely doomed to end in somebody’s belly for the Thanksgiving holiday in the United States.

polishing branch

A temporary branch which is used during the time that a team is polishing software to get it ready for a release.

Pond, the

Large body of water east of Halifax, Nova Scotia; better known as the Atlantic Ocean.


A lottery in the United States.


Copy changesets from a remote repository instance to a local one. Does not affect working copies.


Copy changesets from a local repository instance to a remote one. Does not affect working copies.

put paid to

To complete or finish a task.

Pyrenean Gold Press

The small publishing identity I created because I am too much of a control freak to work with an existing publisher.


Revision Control System; the second version control system, first released in 1982.

release branch

A branch which contains the code/content which exactly corresponds to a released version of software.


Rename a file or directory in the working copy, adding the rename operation to the pending changeset.


An archive which contains every version of the tree which has ever been committed, plus metadata about who did the commit, when it was done, and why.

repository instance

In a DVCS, a specific copy of the repository.


Handle conflicts resulting from a merge.


Undo modifications that have been made to the working copy.


In Mercurial, the file format which stores all revisions of a file.

root dagnode

The first node of a DAG; the node which has no parents.

Samples, Junior

Honest as the day is long; unable to pronounce “trigonometry”.


Source Code Control System; the first version control system, created in 1972.


An iteration-based methodology for software development.


A 160 bit cryptographic hash function which was a government standard in the United States until it was replaced by SHA-2. Considered obsolete for many applications.


A family of cryptographic hash functions. SHA-2 is a government standard in the United States. SHA-2 can be used to create digests of 224, 256, 384, or 512 bits.


Chaotic; disorganized.

ship-shape and Bristol fashion

Immaculately in order; all components of a larger whole in their proper place.


Software that is licensed to be installed on computers owned by the customer.


A family of cryptographic hash functions created by Bruce Schneier and others. At the time of this writing, Skein is a candidate in the competition to select a hash algorithm which will become SHA-3.

skiving off

Pretending to be working while doing nothing useful.


The software company where I work.

Spit the bit

To grow tired and give less effort.


List the modifications that have been made to the working copy.

sticky wicket

Literally a damp playing surface for the game of cricket; slang term for any difficult situation.


The name of the Subversion command-line app.


Associate a meaningful name with a specific version in the repository.




In Veracity, a JSON object which specifies the record types for a decentralized database.


In Veracity, a JSON object which lists the contents of a directory under version control.


In Veracity, to automatically resolve the violation of a unique constraint, using instructions from a template.


Update the working copy with respect to the repository.


Universally Unique Identifier.


A binary delta algorithm described in RFC 3284[53].


Version Control System; a generic term used when referring to any version control system.


An open source distributed version control system created by SourceGear.


In Veracity, the name of the command-line application for executing scripts.


The name of the Veracity command-line app.


To complain persistently.


A cricket term with several distinct meanings: the sets of wooden stumps protected by batsmen; the act of dismissing a batsman (similar to a baseball “out” for Americans); or the playing surface itself.

working copy

A snapshot of a specific revision of the repository tree, owned by a single user, for the purpose of making modifications which may be committed to the repository to create a new revision.


West Midlands Passenger Transport Executive (WMPTE); the Birmingham-area bus authority, also slang for “bus” itself.

Zawinski’s Law

“Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.”