Subversion : Java Glossary

*0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ (all)

Subversion Subversion
aka SVN (Subversion). A source code version control system to replace CVS (Concurrent Versions System). It is available as source or as binaries for 11 different operating systems, including W2K, XP, W2003, Vista, W2008, W7-32, W7-64, W8-32, W8-64, W2012, W10-32, W10-64, Linux and OSX. The latest version is 1.9.7 Last revised/verified: 2017-08-17. Subversion fixes many of the infuriating CVS problems e.g. Eclipse is still using CVS, but gradually the world is flipping over to Subversion. You can monitor the trend looking at which repository the various open source projects use. Subversion was designed originally for Linux/Unix. It does not dodge various inefficiencies of Windows and is hence about only half the speed of CVS.

There are five ways to access the Subversion server:

Ways to Access the Subversion Server
Protocol Notes
file:/ Direct repository access (on local disk), e.g. file://localhost/D:/svnrep where snvrep is the directory where the repository is stored.
http:// Access via WebDAV (Web-based Distributed Authoring and Versioning Protocols) protocol to Subversion-aware Apache server over the Internet
https:// Same as http://, but with SSL (Secure Sockets Layer) encryption
svn:// svn://localhost or svn://mindprod.dyndns.org will get you to the configured repository. Access via custom TCP/IP (Transmission Control Protocol/Internet Protocol) protocol over port 3690 to an svnserve server. You will need to poke a hole is your firewall to allow communication over that port. Subversion usually runs as a Windows service you set up with Your installer may do this for you automatically. Usually you configure your router to tunnel that port through your firewall to the outside so it is visible to the Internet world, possibly using Dyn to make your face IP (Internet Protocol) and port 3690 known and visible to the public. Users will need a username/password for access. SVN will authenticate it using an MD5 (Message Digest algorithm 5) challenge scheme that does not require the password to be sent over the Internet, either in plain text or encrypted. You have to manually maintain the list of users and passwords in a file something like this:
# list of users
[users]
# user = password pairs
harry = sesame12
sally = sparkle76
Normally 
svn+ssh:// Same as svn://, but through an SSH (Secure Shell) tunnel
There are also groups who will host your Subversion project for you if you use one of the official open source licences. See distributing Java Source for details.

When you install Subversion, it uses three directories:

  1. C:\Users\user\AppData\Roaming\Subversion\ for the configuration files.
  2. F:\Program Files\CollabNet Subversion Server for the program files.
  3. F:\svn_repository for the repository files.

The server has no UI (User Interface) other than the config files. To control it you need some sort of client, e.g svn, svnadmin, Tortoise SVN.

There is no step-by-step set of instructions to install a simple system. They want you to understand it in fullness before you use it. Here is an abbreviated get started instructions:

  1. Download and install the Subversion server, the appropriate binary. Set it up for purely local access.
  2. Download and install Tortoise SVN client.
  3. Go to F:\svn_repository in my computer.
  4. Right click to wake up Tortoise, then create the repository files.
  5. Edit the config file. Keep in mind these instructions are for when you are hosting the SVN repository on your own machine. Normally it will be on some other machine, e.g. wush.net. In particular set up these fields:
  6. Go into IntelliJ Idea and use Import into Subversion to make a snapshot of your development files in subversion. If you don’t have Intellij, do this with Tortoise.
  7. Use Tortoise to browse the repository using the URL (Uniform Resource Locator) file://localhost/D:/svn_repository
  8. Then you must check out to a directory where you can then start editing the files. You must checkout even though there are no changes from the ones imported.
  9. I would suggest doing an experimental tiny repository to start till you get he hang of how to make sure your excludes work and how to check things into the correct place in the hierarchy, then throwing it away as many times as necessary before you do your production version.
The catch is this will capture all your files. There is no point in capturing class files, jars etc since they can easily be recreated from source code. I have not yet learned to teach Subversion to avoid capturing class files.

Tips

Downsides

Subversion Hosting

You can use a subversion hosting service instead of hosting it yourself. For example, if you register with wush.net you (or others) can access the Subversion server with https://wush.net/svn/mindprod where mindprod is your account. You may also permit https://wush.net/websvn/ mindprod for browser-based WebSVN access to your repository without an SVN client.

There are many advantages to hosting your repository with an ISP (Internet Service Provider) rather than hosting it on your own machine:

Mindprod Subversion Repository

You don’t have to download the entire package to browse the source code of any Canadian Mind Products programs, even ones not released officially, by looking in the Subversion repository which also track the history of changes. browse mindprod source in repository
access mindprod source in repository with [Tortoise] Subversion client on wush.net/svn/mindprod/com/mindprod/


This page is posted
on the web at:

http://mindprod.com/jgloss/subversion.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\jgloss\subversion.html
Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

IP:[65.110.21.43]
Your face IP:[3.144.187.103]
You are visitor number