Return to doc.sitecore.com

2.  Source Control System Overview
Prev Next

Below you can see a brief SCS terminology explanation. Please refer to [4] for detailed explanation.

Team Development Terminology

As long as Sitecore does not utilize special features of a particular SCS system, the decision which SCS system to choose is up to you and your team. In the present article we will describe a Source Control System setup by the example of Subversion.

2.1.  Subversion VCS Feature Overview

In this section we give a brief overview of Subversion VCS. Please refer to the Subversion home site for more detailed documentation:

http://subversion.tigris.org/

Directory versioning

Subversion implements a virtual versioned file system that tracks changes to whole directory trees over time. Files and directories are versioned.

True version history

With Subversion, you can add, delete, copy, and rename both files and directories. Every newly added file begins with a clean history.

Atomic commits

No part of a commit takes effect until the entire commit has succeeded. Revision numbers are per-commit, not per-file; log messages are attached to the revision and are not stored redundantly. This allows developers to construct and commit changes as logical chunks, and prevents problems that may occur when only a portion of a set of changes is successfully sent to the repository.

Versioned metadata

Each file, as well as each directory, has a set of properties associated with it; for example, keys and their values. You can create and store any arbitrary key/value pairs you wish. Properties are versioned over time, just like file contents.

Choice of network layers

Subversion has an abstract notion of repository access, making it easy to implement new network mechanisms.

Consistent data handling

Subversion is equally efficient on binary and text files, because it uses a binary diffing algorithm to transmit and store successive revisions.

Efficient branching and tagging

There is no reason for these operations to be expensive, so they aren't.

Subversion creates branches and tags by simply copying the project, using a mechanism similar to a hard-link. Thus these operations regularly take up small amount of time.

Hackability

Subversion has no historical baggage; it is implemented as a collection of shared C libraries with well-defined APIs. This makes Subversion extremely maintainable and usable by other applications and languages.

2.2.  Known Issues


Prev Next