SVNManager Usage

Documentation

M. Verkerk

Department of Public Health

Erasmus MC – University Medical Center

July 2005

Preface

Version control in the context of this document is all about keeping track of previous versions of electronic documents. We have chosen to use the Subversion software package in order to keep track of our documents.

Subversion stores these documents in a so called repository. These repositories can reside on an Internet server. Therefore, there is some administration needed on these servers regarding the repositories. SVNManager is a web based application to administrate the repository part of Subversion repository servers.

This document will explain the use of SVNManager.

Kind regards,

M. Verkerk

This document is licensed under the Creative Commons Attribution License. To view a copy of this license, see:

http://creativecommons.org/licenses/by/2.0/

Contents

Preface	2

Contents	3

Introduction	4

Chapter 1: Subversion introduction	5

What is Subversion?	5

What is version control?	5

How does version control with Subversion work?	5

What about Repositories on a server?	5

Chapter 2: SVNManager Documentation	6

Overview	6

User administration	6

Group administration	6

Repository administration	6

User administration	7

Inviting new users by email	7

Adding new users manually	9

Editing Users	10

Remove User	11

Group Administration	13

Create Groups	13

Remove Groups	14

Editing Groups	15

Repository Administration	16

Creating a Repository	16

Removing a repository	18

Editing Repositories	20

Changing User Privileges of a Repository	22

Changing Group Privileges of a Repository	24

Retrieving repository dumps	26

Loading repository dumps	28

References	30

Literature	30

Introduction

The first chapter is a short introduction to version control with Subversion.

The second and final chapter provides SVNManager user documentation.

Chapter 1: Subversion introduction

What is Subversion?

According to the Subversion (SVN) homepage [SVN]: “The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community.”. You might ask yourself: “What is CVS?”. Well, CVS [CVS] (Concurrent Version System) is a ubiquitously used version control package for software development, especially open source software [OSS]. Let's take a step back.

What is version control?

Version control (also known as revision control) is all about keeping track of changes to documents. An agreement between architects to provide each revision of a drawing with a code, could be seen as version control.

Electronic version control is invented for software development. Software code is stored in the version control system and previous versions can be reproduced, e.g. in order to track down bugs. Recent version control software, such as SVN, can be used to store other kinds of electronic documents efficiently as well.

How does version control with Subversion work?

With SVN all the versions of electronic documents are stored in a so called repository. This repository can reside locally, on the user's computer or a memory stick, but it can also reside on a remote server that is connected via a network, such as the Internet, to the user's computer. It is quite common to create a new repository for each new project.

The first action with a new repository is to import a preferred folder structure into it and, if available, the starting versions of the electronic documents that need to be version controlled. The next step is to create a so called working copy (WC) locally, which usually is a snapshot of the newest version of the repository. The user works with the files in the WC, in actually the same way as an user would work with electronic documents normally. When some changes have been made to the files, the user can decide to 'commit' these changes to the repository. The version of the working copy is stored into the repository, actually only the changes since the last version, accompanied with the name of the user, date and time, and possibly a message. This information can be retrieved later from the repository's logbook, in order to recognize and possibly retrieve previous versions of (parts of) the repository's content. It is possible to have multiple WC's from just one repository. In order to make sure that a WC contains the newest information of a repository, one could execute an 'update' command.

What about Repositories on a server?

As mentioned before, Subversion is equipped with networking capabilities, which means that its repository can reside on a server and accessed over a network. In this case, it is possible to have multiple (collaborating) users accessing one repository. Another example is that a user can access a repository from various locations, such as different work places or at home, keeping them synchronized, in other words up-to-date. Access rights can be defined for each repository, for each user or group of users that enables or disables them to read from and, or write to the repository, or certain parts of it.

For more information on Subversion please refer to the literature list at the end of this document!

Chapter 2: SVNManager Documentation

Overview

The current version of SVNManager (0.35) provides the following functionality, divided over three categories:

User administration

Invite users by e-mail to create an version control account on the server

Add a new user account manually

Edit a users properties

Remove an existing user account from the server

Group administration

Create a new group

Remove an existing group

Change a group's properties

Repository administration

Create a new repository

Remove an existing repository

Edit a repository

Change user privilege's of a repository

Change group privilege's of a repository

Download (dump) a repository

Upload (load) a previously dumped repository

Recover a repository

User administration

A SVNManager controlled SVN version control server has got a user administration. There are two kinds of users on this kind of server: normal users and administrators. Administrators have more rights than normal users. They can invite new users by email or manually add new users. The advantages of inviting new users by email are that new users become aware of the version control server and immediately can choose their own password.

Further, administrators can edit the parameters of users, e.g. change the number of repository grants, with which the user can make new repositories. Users can edit their own properties.

Finally, administrators can remove users from the system.

Inviting new users by email

Step 1: Choose 'User Admin' from the menu

Step 2: In the User administration menu, choose 'Invite'

Step 3: Enter the e-mail address of the new user

Step 4: Optionally, give the new user a number of grants to make repositories on the server

Step 5: Press the confirm button

If things are alright, this will result that the invited user receives an email such as the following:

Your are invited to create an account on the 'server.org' server. Please follow the link to activate your account:

https://server.org/svnmanager/index.php?page=User:ActivatePage&ticket=3c28dbc4ea755665f6b4229758c69231

Regards

The following steps are proceeded by the invited user after clicking the link in the email:

Step 6: Enter a user name for the SVNManager system

Step 7: Enter & repeat a password for access to the system

Step 8: Press the confirm button

Adding new users manually

Step 1: Choose 'User Admin' from the menu

Step 2: In the User administration menu, choose 'Add'

Step 3 – 6: Enter the new user's name, password, password again and email address

Step 7: Check if the new user is an administrator

Step 8: Give the user a number of repository grants, which they can use to create a repository

Step 9: Enter your own password for security reasons

Step 10: Press the confirm button

Editing Users

Step 1: Choose 'User Admin' from the menu

Step 2: In the User administration menu, choose 'Edit'

Step 3: Select the User that you want to edit

Step 4-6: If desired, change the user's name, password + repeat or email adres

Step 7: If desired, give or remove administrator rights

Step 8: If desired, change the number of repository grants for this user

Step 9: Enter your password for security reasons

Step 10: Press the Confirm button

Remove User

Step 1: Choose 'User Admin' from the menu

Step 2: In the User administration menu, choose 'Remove'

Step 3: Select the user that you want to remove from the system

N.B. It is not possible to remove your own account!

Step 4: Confirm that you are certain

Group Administration

It is possible to define user groups. These groups can get access rights to (parts of) SVN repositories on the server. SVNManager provides functionality for the administrator to create groups, remove groups and change groups.

Create Groups

Step 1: Choose 'Group Admin' from the menu

Step 2: In the group administration menu, choose 'Create'

Step 4: Enter a name for the group

Step 5: Confirm if you are certain

Remove Groups

Step 1: Choose 'Group Admin' from the menu

Step 2: In the group administration menu, choose 'Remove'

Step 3: Select the group that you want to remove

Step 4: Confirm if you are certain

Editing Groups

Step 1: Choose 'Group Admin' from the menu

Step 2: In the group administration menu, choose 'Remove'

Step 3: If desired, change the group name

Step 4: If desired, change the group owner

Step 5: If desired, change the group members (multiple selection is possible by pressing and holding the ctrl key while selecting or deselecting people)

Step 6: Press the confirm button

Repository Administration

This part of SVNManager serves users to control their repositories. If a user has got grants, he or she can create repositories. If a user owns a repository, he or she can perform various actions, such as removing it, by which the user gains a new grant, or changing basic parameters of it. Further, the owner of a repository can define access rights to it, for other users or groups. Also, the user can create and download a so called repository dump, e.g. for archiving it. These dumps can also be uploaded in order to create a new repository from it. Finally, a user can try to recover a broken repository.

Creating a Repository

Step 1: Choose 'Repository Admin' from the menu

Step 2: In the repository administration menu, choose 'Create'

Step 3: Enter the name of the repository

Step 4: Press the confirm button

Removing a repository

Step 1: Choose 'Repository Admin' from the menu

Step 2: In the repository administration menu, choose 'Remove'

Step 3: Select the repository to remove

Step 4: Press confirm if you are certain

Editing Repositories

Step 1: Choose 'Repository Admin' from the menu

Step 2: In the repository administration menu, choose 'Edit'

Step 3: Select the repository you want to edit

Step 4: If desired, change repository name

Step 5: If desired, change repository owner

Step 6: Press the confirm button

Changing User Privileges of a Repository

Step 1: Choose 'Repository Admin' from the menu

Step 2: In the repository administration menu, choose 'User Privileges'

Step 3: Select a repository of which you want to alter the user privileges

Step 4: You can remove previously assigned user privileges by clicking the remove link-button next to the concerning privilege rule

Step 5: Choose the user for whom you want to assign the new privilege

Step 6: Specify the repository path or just let the '/' path stand for privileges applying to the whole repository

Step 7: Check if you want this user to be able to read the specified path

Step 8: Check if you want this user to be able to write the specified path

Step 9: Press 'Add' to add these privileges to the system and if you want you can add a new privilege rule by continuing with step 5

Step 10: Press done when finished changing privilege rules

Changing Group Privileges of a Repository

Step 1: Choose 'Repository Admin' from the menu

Step 2: In the repository administration menu, choose 'Group Privileges'

Step 3: Select a repository of which you want to alter the group privileges

Step 4: You can remove previously assigned group privileges by clicking the remove link-button next to the concerning privilege rule

Step 5: Choose the group for which you want to assign the new privilege

Step 6: Specify the repository path or just let the '/' path stand for privileges applying to the whole repository

Step 7: Check if you want the users of this group to be able to read the specified path

Step 8: Check if you want the users of this user to be able to write the specified path

Step 9: Press Add to add these privileges to the system and if you want you can add a new privilege rule by continuing with step 5

Step 10: Press done when finished changing privilege rules

Retrieving repository dumps

Step 1: Choose 'Repository Admin' from the menu

Step 2: In the repository administration menu, choose 'Dump'

Step 3: Select the repository that you want to dump

Step 4: After selecting the repository, the download should start automatically. If not, you can press the 'Start download manually' link-button.

Step 5: Press the 'Go back to the Repository Admin page' link-button to do so, or use the menu to continue otherwise

Loading repository dumps

Step 1: Choose 'Repository Admin' from the menu

Step 2: In the repository administration menu, choose 'Load'

Step 3: Enter a name for the repository that you are going to upload

Step 4: Enter or browse for a file name of a repository dump file that you want to upload

Step 5: Press the confirm button to start uploading

Recovering Repositories

Step 1: Choose 'Repository Admin' from the menu

Step 2: In the repository administration menu, choose 'Recover'

Step 3: Select a repository to recover

References

[SVN]

Subversion homepage

http://subversion.tigris.org

[OSS]

The Open Source Initiative

http://www.opensource.org/

The free software Foundation

http://www.fsf.org

[CVS]

CVS Homepage

https://www.cvshome.org/

Literature

SVN General Tutorial, M. Verkerk, Erasmus MC, Department of Public Health

SVN Programming Tutorial, M. Verkerk, Erasmus MC, Department of Public Health

SVNManager Installation Documentation, M. Verkerk, Erasmus MC, Department of Public Health

Version Control with Subversion (freely available on-line), Ben-Collins-Sussman et al, O'Reilly Media Inc

http://svnbook.red-bean.com/

Chapter 2: SVNManager Documentation

Page 10

Literature

Marijn Verkerk

2005-07-06T16:34:55

Marijn Verkerk