Revision Control

about
Contrary to the wiki etiquette, I copied and pasted these two paragraphs from Wikipedia. Should we be more specific in the etiquette, and make exceptions for copyleft content?
This page was last modified on 26 February 2009, at 15:39. All text is available under the terms of the GNU Free Documentation License.

Revision control (also known as version control (system) (VCS), source control or (source) code management (SCM)) is the management of multiple revisions of the same unit of information. It is most commonly used in engineering and software development to manage ongoing development of digital documents like application source code, art resources such as blueprints or electronic models, and other projects that may be worked on by a team of people. Changes to these documents are usually identified by incrementing an associated number or letter code, termed the "revision number", "revision level", or simply "revision" and associated historically with the person making the change. A simple form of revision control, for example, has the initial issue of a drawing assigned the revision number "1". When the first change is made, the revision number is incremented to "2" and so on.

distributed revision control

Distributed revision control (DRCS) takes a peer-to-peer approach, as opposed to the client-server approach of centralized systems. Rather than a single, central repository on which clients synchronize, each peer's working copy of the codebase is a bona-fide repository. Synchronization is conducted by exchanging patches (change-sets) from peer to peer. This results in some important differences from a centralized system:

  1. No canonical, reference copy of the codebase exists by default; only working copies.
  2. Common operations such as commits, viewing history, and reverting changes are fast, because there is no need to communicate with a central server. Rather, communication is only necessary when pushing or pulling changes to or from other peers.
  3. Each working copy is effectively a remoted backup of the codebase and change history, providing natural security against data loss.

relevance to type design

In-house most foundries probably use some form of revision control (right?)

It can be argued, however, that this traditional model of centralised revision control is insufficient for the more ad-hoc kind of collaboration open source development usually takes, were this model applied to type design. For discussion, see this thread.

Common revision-control software

Centralised

CVS was the first widely used free tool.
SVN is the one that is currently ubiquitous.

Distributed

Darcs, Mercurial, Git and Bazaar are the main software packages used right now. All are free.

Web-based

There have existed web-front ends for versioning servers for a long time. Until recently, however, they were used only to allow the browsing of the code.

GitHub is among the first (the first?) to offer revision control software as a service. The added value this brings is the same as sharing photos on a site like Flickr: the ability to engage with the community, and the economy of scale that allows the developers to invest in the usability of the service. With Git as versioning software, the social aspect is especially relevant, since Git takes the opposite approach to traditional development cycles: forking becomes desirable instead of disadvantageous.

Typophile @Klepas is probably the first to host a typeface on GitHub, as the intented collaborative platform for an open font. A thread is going on regarding the relevancy of this effort.

Using GitHub is as trivial as geek gets, see http://klepas.org/openbaskerville/#using-git

Syndicate content