Subversion, a useful FOSS tool

I have had to use subversion recently for a job, which is great as i've been meaning to start using it for ages! Here is an intro to subversion, and following a suggestion of how it could help next layer and related projects in a very practical way.


Subversion is a "versioning system" that is used most often by coders and documentors to store text files, but can actually be used for any kind of data.

Its a key tool for collaboration, allowing people to "checkout" a "working copy" of the shared files, modify, add and delete content and/or files on them wherever or however they wish, then "commit" them back to the "repository". If other people have been working on the same code the changes can be "merged" together, a process that would be part manual and part automated, depending on the extent of the changes.

subversion remembers every version that was ever committed, and can give you information about who submitted what revision, and even give you a line by line listing of who changed what when with the "blame" command. It uses the unix utility "diff" to generate information about the precise differences between one version and another, at the level of the file contents and/or the file system structure.

(note: terms in inverted commas are technical terms with specific meaning in subversion and indeed other version control systems )

Version control systems in general
Subversion FAQ
Subversion Manual