2.0 series

2.0 series

Overview

The Superversion 2.0 series tremendously extends the software’s usefulness and range of applications by allowing multiple users on different computers to work on the same project concurrently. Superversion takes care of all transfer and synchronisation issues.

Architecture

The client/server extension is built on top of RMI. This makes it suitable for use both on the Internet and intranets. Encryption (SSH tunnelling) as well as compatibility with restrictive proxies (HTTP tunnelling) can easily be added and will be provided in a later Beta release.Currently, a distributed Superversion configuration consists of a central server and an arbitrary number of clients. (A pure client scenario (peer-to-peer) is being considered as a future extension.) The server must be able to run Java programs (see server installation section below). The clients just run the normal Superversion GUI. Clients can be behind a firewall/router if it supports direct TCP connections to arbitrary ports.

Client installation

See the download page.

Server installation

You have three possibilities here:

  • If you just want to try out Superversion 2.0 with as little effort as possible, you can use the public server that I have set up for your convenience. To connect to the server, you need a 2.0 Beta 6 or newer client. When the GUI asks you for a server name, enter “superversion.org”. The login is “admin” with an empty password. You can create as many projects as you like. If you change the project’s administrator password after you created it, it will be exclusively yours from that point on!If your project is not open source and you are worried about privacy: While I cannot prove that the server is secure (Superversion has not undergone a security audit yet), the software was designed carefully, and there are no known loopholes at present time. I have no intention whatsoever to look at the data you are uploading. You can delete your project at any time.Note: The public server is provided as a free service to Superversion users; I make no guarantees as to how long this service will be continued.
  • If your server machine has a windowing environment (Windows/X-Server), you can download and start the server application over Java WebStart (see download page). You will see a very comfortable, self-explanatory GUI that allows starting, stopping and monitoring the server. Closing the GUI window does not stop the server.
  • If you only have command line access to the server (Unix shell/Windows command line), download the Superversion 2.0 Beta 8 archive manually. After unpacking, edit the file server.bat (Windows) or server.sh (Unix). The important values you need to change are the server’s address (IP address works best, although a DNS name is usually fine too) and the location of your JDK/JRE (1.4 or higher). Invoking server.bat/server.sh starts the server as a background process. You will find debug output in server.out and error messages in server.err. On Unix machines, a script called killserver.sh for shutting down the server conveniently will be generated.

In any case, if you are installing your own server, make sure the machine can open the TCP ports 20022 and 20023 for external access (if you are using a software or hardware firewall, you might need to add routing rules).If you don’t specify another location, the server creates a directory called “superversionserverdb” in your user’s home directory to hold the repositories.

How to use the client

Basically, you work with the Superversion client just as you do with the 1.x versions, with the following extensions/changes:

  • The Synchronize command downloads all new states that have been uploaded to the server by other users. However, to save time and disk space, it does not download the actual data (contents of new and modified files). The data is downloaded on demand as soon as it is needed for an update or a report function. If you want to download all data (for example, to be independent of server downtimes), use “Server/Download all data”. Be prepared that this command may take a long time to execute, depending on the size of your project and the available bandwidth. When it is done, you will have a complete copy of the server repository on your machine. Great for backup purposes!
  • If two users add a successor state to the same repository state, they will (after synchronizing) see both new states as siblings, next to each other. If the original state had a marker (as it will usually have), Superversion will report a marker conflict and give you the possibility to resolve it, preferrably by merging the changes (select “Merge” in the drop-down box). Just follow the instructions on the screen, you will be guided through the process.

A short explanation of all commands in the Server menu:

  • Connect to…: Establish connection to the project’s server
  • Disconnect from…: Close connection to the project’s server
  • Synchronize: Download new remote states (without data) and upload new local states (with data)
  • Project users…: Manage the project’s user roster (names, passwords, rights)
  • Change user…: Re-login to the server with a different user
  • Download all data: see above
  • Export to server…: If the current project is not remote-enabled yet (or not anymore), choose a server name, a remote project name, upload a complete copy of the project to the server and associate it with the server. You need a server administrator login to perform this function.
  • Detach from server…: The opposite of “Export to server”: converts a remote-enabled one into a local project. If the project has not been downloaded completely, this will be done automatically (you might need to supply login information). After “Detach from server” has been run, you may export the project to a different server.
  • Open remote project…: Create a new local project and associate it with an existing server project. This is how you check out a server project on a new machine.
  • Server administration…: Edit a server’s project and server administrator list.

2.0 Beta 8 release notes

2.0 Beta 8 is, as the name suggests, a somewhat unfinished release. It is, however, pretty stable since its proper functioning is verified by a large number of automated test cases. It is used to manage the Superversion themselves and does a beautiful job so far.Some things you should keep in mind when using 2.0 Beta:

  • The database format differs from Superversion 1.2 as well as from 2.0 Beta 6. An upgrade is performed automatically, but there is no way to downgrade. If you want to upgrade your existing project to 2.0 with the possibility to go back again, you should do a backup first. To do this, open your superversiondb directory (usually in your home folder) and make a copy of the project directory and its contents. If you put the copy in the superversiondb directory, it will be listed in the projects dialog.
  • A Beta 8 client cannot communicate with a Beta 5 or older server and vice versa.
  • Network operations such as repository syncs freeze the Superversion window until they are done. The only indication of what is going on is that in the task bar, the window title usually changes to “[Uploading…]” or “[Downloading…]”. Uploads and downloads can not be interrupted.
  • A minor point: Tasks are currently not synchronized with the server.