* Directories, renames, and file meta-data are versioned.
* Commits are truly atomic.
* Apache as network server, WebDAV/DeltaV for protocol (separate standalone server also available)
* Branching and tagging are cheap (constant time) operations
* Natively client/server, layered library design
* Client/server protocol sends diffs in both directions
* Costs are proportional to change size, not data size
* Efficient handling of binary files
* Parseable output
Features to come post-1.0:
* Support for symbolic links
* Better merge support (currently same as CVS')
* Broader WebDAV compatibility
* Support for plug-in client side diff programs
More features and comparisons at the big VCS shootout.
Create a new svn repository, e.g.
$ cd /home/eugenia $ svnadmin create svnPopulate your new repository by using an existing folder with your source code:
$ svn mkdir file:///home/eugenia/svn/tetris-sharp -m 'Create Tetris project' $ svn import file:///home/eugenia/svn /home/eugenia/tetris-sharp tetris-sharp/trunk \ -m 'Initial Import of Tetris project'The text accompanying the -m knob is added to the log.
To start working with your code you will need to checkout some files.
$ svn checkout file:///home/eugenia/svn/tetris-sharp ~/tetris-srcTo commit a file just use one of the following. Please note that Subversion requires log entries each time you commit something.
$ svn commit *.cs -m "commit all .cs files"or
$ svn commit *.cs data \ -m "save all .cs files in the current directory and everything in the tetris-src/data directory"or
$ svn commit -m "commit all files that have changed since my last commit"
There are much more to explore in the very detailed Subversion Book.