Glossary

acyclic

Not cyclic.

See Also cyclic.

add

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).

audit

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

blimey

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

blob

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.

box

See idiot’s lantern.

BR-549

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

branch

Create another line of development.

Brummagem

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

Brummies

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.

C99

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.

centralized

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

changelog

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

changeset

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.

checkin

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

checkout

Create a working copy.

chuffed

Pleased or delighted.

clone

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

closet

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

collision

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

comma

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.

commit

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

commit

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

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.

CVCS

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

CVS

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.

cyclic

See looping.

DAG

directed acyclic graph.

dagnum

In Veracity, a hexadecimal identifier for a DAG.

data

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

decentralized

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

deduplication

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

deflate

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

delete

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

delta

An expression of the difference between two pieces of data.

diff

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

DiffMerge

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

digest

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.

DocBook

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.

doss

Same as faff, if you’re a Brummie.

DVCS

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

edit

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.

England

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.

faff

To waste time.

feature branch

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

FS3

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

Futilisoft

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

GID

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

gunter

To repair.

head

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

hg

The name of the Mercurial command-line app.

HID

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

hospital

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

Howzat?

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

idiot’s lantern

See telly.

indent

A utility that reformats C code.

JSON

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.

kerfuffle

Disturbance or disruption.

label

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.

lock

Prevent other people from modifying a file.

lock

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

log

Show the history of changes to the repository.

looping

See cyclic.

manifest

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”.

merge

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.

mithering

Irritation or bother.

move

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.

nark

State of annoyance or irritation.

obliterate

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.

parents

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.

Powerball

A lottery in the United States.

pull

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

push

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.

RCS

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

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

repository

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.

resolve

Handle conflicts resulting from a merge.

revert

Undo modifications that have been made to the working copy.

revlog

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”.

SCCS

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

Scrum

An iteration-based methodology for software development.

SHA-1

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.

SHA-2

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.

shambolic

Chaotic; disorganized.

ship-shape and Bristol fashion

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

shrinkwrap

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

Skein

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.

SourceGear

The software company where I work.

Spit the bit

To grow tired and give less effort.

status

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.

svn

The name of the Subversion command-line app.

tag

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

telly

Television.

template

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

treenode

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

uniqify

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

update

Update the working copy with respect to the repository.

UUID

Universally Unique Identifier.

vcdiff

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

VCS

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

Veracity

An open source distributed version control system created by SourceGear.

vscript

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

vv

The name of the Veracity command-line app.

whinge

To complain persistently.

wicket

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.

Wumpty

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.”



[53] http://tools.ietf.org/html/rfc3284