| |
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.
|