Subversion usage in Skolelinux

$Date: 2005-10-20 23:39:51 +0200 (Thu, 20 Oct 2005) $


Table of Contents

The repositories
Differences from CVS
Global revision numbers

The repositories

The repositories are available through two access methods: svn+ssh:// for committers, and svn:// for read-only anonymous access. Using the main branch in the Skolelinux repository as an example, committers use the address svn+ssh://username@developer.skolelinux.no/repos/repository and anonymous users use the address svn://developer.skolelinux.no/repos/repository.

The following repositories are available:

  • skolelinux (Main repository)

  • sandbox (For svn testing, does not send commit mails)

  • cinelerra

  • samba

  • sql-ledger

  • sql-ledger-old

This is an example of a checkout of the main branch (/trunk) in the skolelinux repository:

svn checkout svn+ssh://username@developer.skolelinux.no/repos/skolelinux/trunk

The same checkout as above, but using anonymous access:

svn checkout svn://developer.skolelinux.no/repos/skolelinux/trunk

Differences from CVS

The user interface of Subversion is intentionally made quite similar to CVS, with the same syntax where possible. Describing the Subversion usage here is duplication of work, the book Version control with Subversion describes how to use it in great detail. Appendix A (Subversion for CVS Users) deals specifically with the differences between CVS and Subversion. There is also a Norwegian version available, Versjonskontroll med Subversion. Not fully translated, but complete.

Global revision numbers

One of the biggest differences between Subversion and CVS is the use of global revision numbers instead of file-based revision numbers. Several changes, moves and copies can be collected in a single commit. When possible, try to keep related changes and changes that depend on each other in the same commit.

The global revision numbers also makes it easier to see what has happened in the repository recently. If you for example want to see what has happened since your last update, run the following command before the svn update, it will list all log entries from your last update until repository HEAD:

svn log -v -rBASE:HEAD