Contents (hide) 1 SVN
2 Features
8 Links
|
SVN
Subversion is meant to be a better CVS, so it has most of CVS's features. Generally, Subversion's interface to a particular feature is similar to CVS's, except where there's a compelling reason to do otherwise.Features
- Commits are true atomic operations. Interrupted commit operations do not cause repository inconsistency or corruption.
- Renamed/copied/moved/removed files retain full revision history.
- Directories, renames, and file metadata (but not timestamps) are versioned. Entire directory trees can be moved around and/or copied very quickly, and retain full revision history.
- Versioning of symbolic links.
- Native support for binary files, with space-efficient binary-diff storage.
- Branching and tagging are cheap operations, independent of file size.
- Natively client/server, layered library design.
- Client/server protocol sends diffs in both directions.
- Costs are proportional to change size, not data size.
- File locking for unmergeable files ("reserved checkouts").
- PHP, Python, Ruby, Perl, and Java language bindings.
- Full MIME support - the MIME Type of each file can be viewed or changed, with the software knowing which MIME types can have their differences from previous versions shown.
Local SVN Repositories simple tutorial
Create local repository example:# creation of empty repository svnadmin create /path/to/repos # import sources to repository cd /path/to/your/sources svn import . file:///path/to/repos
Read about repository creation and configuration in SVN book#Chapter 5.
Using svn utility
Fetching working repository to~/projects
mkdir ~/projects cd ~/projects svn checkout file:///path/to/repos # from local repository or svn checkout http://path/to/repos # from web repository or svn checkout svn://path/to/repos # from SVN repository
In ~/projects/<repository name>
svn update # update from SVN svn commit -m "message" # commit changes with some message svn add <new file> # add <new file> to SVN svn delete <file> # deletes <file> from SVN svn move <file> <new file> # moves <file> to <new file> in SVN svn log <file> # prints information about revisions of <file> svn diff <file> # shows differences between local and SVN last version svn diff <file> --revision <num> # shows differences between local and SVN <num> version
See repository information:
svnlook info /path/to/repos svnlook tree /path/to/repos
Change repository location:
svn switch --relocate http://path/to/old/svn/ http://path/to/new/svn/ .
Read about basic work cycle on SVN book#Chapter 3.
SVN on Computer Science
Our main SVN server is https://svn.cs.bgu.ac.il/svn/ and its tracking is https://svn.cs.bgu.ac.il/trac/If you want to open your own SVN repository and Trac, email us:
SVN Hosting for Undergraduate Students
According to many requests, we raise new service: CS SVN Hosting service.Every undergraduate student can create there SVN repository for a course assignments or for a project.
More details on service homepage.
SVN and Eclipse
All you need, is an Eclipse and Subclipse plugin.Subclipse gives you abilities to create/explore/modify SVN repository, synchronize your project, update/commit etc.
More info in Subclipse documentation or IBM::developerWorks tutorial.
Clients for SVN
- KdeSVN A subversion client for KDE
- SmartSVN pure JavaTM client
- TortoiseSVN implemented as a windows shell extension
- http://rapidsvn.tigris.org/ multi-platform GUI front-end for the SVN
- eSvn another Linux SVN client