Subversion 1.8.3 is the latest release of a software program developed to maintain current and historical versions of files like source codes, web pages, documentation and so on. Its main purpose is to be a mostly compatible alternative to the widespread SVC (Concurrent Versions System) and a revision control system.
- Most CVS features
- Directories are versioned
- Copying, deleting, and renaming are versioned
- Merge tracking
- File locking
- Apache network server option, with WebDAV/DeltaV protocol
- Interactive conflict resolution
- Bindings to programming languages
Subversion is the ultimate version control tool. An open source project, Subversion is among the elite in the open source field. It's probably the best choice for programming source code, graphic design, modeling, multimedia projects, documents of any description, captured data, config files, anything, which is going to change over time. Each change is recorded automatically for both text and binary files.
Subversion 1.8.3 comes with a long list of features. I am about to familiarize you with most of them.
Let's begin with something mentioned above – CVS. CVS is a relatively basic version control system. Subversion has matched and even exceeded CVS's feature set. It also treats the directories like first-class objects (like files).
Subversion 1.8.3 supports copying, deleting and renaming.
It also allows arbitrary metadata to be attached to any file or directory. These properties are key/value pairs, and are versioned just like the objects they are attached to. Subversion also provides a way to attach arbitrary key/value properties to a revision (that is, to a committed changeset).
Some of the operations like branching and tagging use a small amount of system resources. They also take constant time to perform.
Another of the provided features is called merge tracking. It has been introduced with Subversion 1.5. By its essence, it is some kind of automated assistance, which manages the flow of changes between lines of development, and merging of branches back into their sources.
When it comes to programming, it often happens that two and more developers work on a same code. Subversion supports a functionality called File locking, which will eliminate the risk of code loss. Basically, this feature allows files to be marked as requiring a lock before being edited. In this case Subversion will present the file in read-only mode until a lock is acquired.
Subversion 1.5 introduces Changelists, which allow a user to put modified files into named groups on the client side, and then commit by specifying a particular group. For those who work on logically separate Changesets simultaneously in the same directory tree, Changelists can help keep things organized.