Android Tutorial

7.12.2011

uberSVN 11.6 Released

Welcome

1. Introduction

This user guide describes the beta edition of WANdisco's uberSVN.
Welcome to the uberSVN User Guide - quick start guide to getting uberSVN set up, a reference for getting the most out of uberSVN and getting more done, more quickly with Subversion.

1.1 What is uberSVN

uberSVN, as the name suggests, is intended to be the ultimate Subversion distribution. Developed with growth in mind, expanding the scope and functionality of Subversion (utilizing WANdisco's own rock-solid Subversion binaries) and delivering a fuller, more complete Free-to-use package than is currently available elsewhere.

1.2 uberSVN Family

While uberSVN is focused only on expanding the scope and functionality of Subversion, later products will expand into full ALM stacks, based on a completely modular approach that allows companies to benefit from increased integration, without being locked into specific components.

1.3 Intended Audience

We've developed uberSVN to be useful to both new-starters and experienced Subversion users. Likewise, this guide has been written with the same wide audience in mind.

1.4 Documentation for 3rd party components

uberSVN is integrated with several open source software components that require user-level documentation, in these cases links are provided to the open source vendor's own documentation.
You can keep up-to-date with the latest uberSVN news, talk to us or other users in SVNForum.org's uberSVN Community forum.

1.5 Release Notes

For details of new features and fixes see the uberSVN 11.6 Release Notes.
We'll be using lots of terms from Subversion and related tools. To help readers who are new to Subversion we've included a Glossary for an explanation of these and other WANdisco / Subversion terms.

1.6 Feedback

If you find an error, or if you think that something needs improving we'd like to hear about it. Tell us about it by raising a case on our support website or emailing docs@wandisco.com.

1.7 Key

Throughout this document we'll highlight things using the following types of information box.
Alert
We use alerts to highlight something we think is important for you to know.
Caution
The stop symbol is used when we want to caution you against doing something.
Tip
Tips are principles or practices that you'll benefit from knowing or using.

1. Installation

The installation section runs through how to get uberSVN installed and working on either a Linux or Windows server. We recommend that you check the following section before attempting an install on your chosen platform/OS.

1.1 Supported Operating Systems

All versions of uberSVN should be supported on the same platform list as the WANdisco Open Source binaries.
The current list of supported OS platforms includes:

Linux

  • CentOS 5 (32-bit and 64-bit)
  • RedHat 5 - 32-bit and 64-bit
  • Ubuntu 9.10/10.4
  • Debian 5 32-bit and 64-bit
  • SuSE Enterprise Linux 11

Minimum requirements:

Windows

  • Windows Server 2003 (32-bit and 64-bit)
  • Windows Server 2008 (64-bit)
  • Windows 7 (32-bit and 64-bit)
  • Windows Vista (32-bit and 64-bit)
  • Windows XP (32-bit and 64-bit)

Minimum requirements:

Additional targeted platforms (in priority order) include:
  • Mac OS X
  • FreeBSD 7.x & 8
  • Fedora 12, 13, & 14
  • AIX - lower priority but continuing to trial

Compatible browsers

The uberSVN portal runs through a web browser. The following browsers have been tested and found to work:
  • Internet Explorer 7, 8 & 9
  • Firefox 4.0
  • Google Chrome 10.0
  • Safari 5.0.4
  • Opera 10.60
Alert
uberSVN is not compatible with Internet Explorer 6. While we understand that some potential users are still tied to Internet Explorer 6, we feel that the development resources required to make uberSVN work with IE6 would be better spent working on uberSVN itself, creating new, better features.

1.2 Linux Installation Guide

Follow this procedure for installing uberSVN on Linux.
  • 1. Get the installation file from the uberSVN website.
  • 2. Set the installer file as executable:
    chmod +x uberSVN-xxxx.sh
    and the run it:
    ./uberSVN-xxxx.sh
  • 3. The installer will then check its integrity:
    Verifying archive integrity... All good.
    Uncompressing WANdisco uberSVN 1.0.0 (450) Install................................
    ......................................................................................
    ......................................................................................
    ......................................................................................
    ......................................................................................
    ......................................................................................
    ......................................................................................
    ......................................................................................
    ......................................................................................
    ......................................................................................
    uberSVN Installer
    
    Checking your CPU architecture..
    Installing for 32bit
    Important: This installer is for new deployments of uberSVN and should not be used for installing updates.
    Continue with new installation 
    (y/n)? (y)
  • 4. Type in "y" and press the return key.
  • Where should uberSVN be installed? Note that installing to /root or a home directory
    (eg /home/name) may cause permission issues and is not recommended.
    Enter installation location (/opt/ubersvn):
  • 5. Press Enter (to use the default /opt/ubersvn or type in your own installation path, then press Enter.
  • 6. The installer will check that you are happy with your chosen installation path"
    Are you sure you want to install to: /opt/ubersvn?
    Enter "y".
  • 7. The installer will complete the installation.
    Copying files..
    Files copied successfully.
    
    uberSVN configuration
    uberSVN port set to 9890
    
    uberSVN configuring...
    
    uberSVN started successfully
    Allow uberSVN Subversion to run below port 1024? See http://www.ubersvn.com/below1024
    for security considerations. (y/n) (n):
    Type "n" and press Enter. Read the warning below before choosing to allow uberSVN to use a "common port".
    Caution: Why you should avoid using a port number below 1024.
    uberSVN is set up using ports 9890 for the uberSVN portal and port 9880 for Subversion. These are non-privileged ports that don't need to be executed with root privilege for binding and listening for client requests. You can change the port numbers but you should avoid using common ports (numbered 1023 or lower) as these would make uberSVN a serious potential security hole: a successful exploit will have immediate control of the whole system, compromising it completely.
  • 8. The installer will now complete the setup. It will ask you if you would like uberSVN to be set to start whenever the server is booted up.
    Linux distribution was detected as Redhat
    Do you want uberSVN to start on boot? (y/n) (y):n
    Choose "y" or "n". Should you change your mind later, you can enable or disable start on boot after the installation.
  • 9.
    ***************************************************
    
    Your uberSVN installation is nearly ready. Visit the following URL to complete configuration:
    http://10.2.5.131:9890/ubersvn
    
    ***************************************************
  • 9. To complete the configuration, open a browser and go to the uberSVN web installer's address:
    http://<IP ADDRESS>:<:PORT>/ubersvn
  • 10. The first step of the uberSVN web configuration wizard (Installation Settings) will appear. Enter the required details.
    Installation 01
    Installation Directory
    This is the directory in which the uberSVN installation files are saved. Once selected, this can not be changed later. If you need to change the address you will need to reinstall uberSVN.
    Repository Storage Location
    The directory in which all Subversion repositories are stored. This can be modified later.
    uberSVN key
    Enter the uberSVN key. You can get an uberSVN key from the registration section of the uberSVN website - www.ubersvn.com/register
    Terms and Conditions
    By continuing the installation of uberSVN you are confirming that you have agreed to the uberSVN Terms and Conditions.
    When all fields have been filled, click Next.




  • 11. Enter the details for the Admin User account.
    Installation 01
    Full name
    The admin account user's actual name. uberSVN will use this to refer to the admin user.
    Email
    The admin user's email address.
    Password
    The admin user's account password.
    Confirm Password
    Re-enter the password to confirm that you have typed it correctly.



  • 12. Check or change the portal and Apache settings.
    Installation 01
    Base URL
    The URL that will form the basis for address used for accessing uberSVN and Subversion.
    Caution: Avoid using localhost "127.0.0.1" address as the base URL uberSVN will assign the loopback address for the base URL, while this will work fine while the server is being set up and tested it will not work for users who try to connect to uberSVN over a network. We strongly recommend that you replace the localhost /127.0.0.1 address with the server's assigned IP address.
    base url
    The warning message that will appear if you leave the 127.0.0.1 loopback address in place.
    uberSVN Port
    Port used to access the uberSVN webportal.
    Caution: Avoid using privileged ports. uberSVN is set up using ports 9890 for the uberSVN portal and port 9880 for Subversion. These are non-privileged ports that don't need to be executed with root privilege for binding and listening for client requests. You can change the port numbers but you should avoid using common ports (numbered 1023 or lower) as these would make uberSVN a serious potential security hole: a successful exploit will have immediate control of the whole system, compromising it completely.
    Apache Subversion Port
    Port used for accessing the Apache Subversion repositories.
    Example Addresses
    At the bottom of the screen, the uberSVN portal and Repository Access URLs are presented. Installation 01 These are the URLs that you will use, given the settings that apply if you continue with the chosen settings.




  • 13. Enter the email settings,.
    Installation 01
    Email settings are used by uberSVN to send notification emails out to users.
    If you don't want uberSVN to support email notifications, or plan to set this up later,
    click the Disable Email Notifcations .
    Use SSL?
    Enable secure socket layer encryption for extra email security.
    SMTP Server Address
    The address of your email relays server that will accept emails from uberSVN and send them on to users' emails accounts.
    SMTP Port
    The port used by the above email server to accept emails. The default SMTP port is 25.
    From Address
    Emails sent out by uberSVN will come from this address.
    Email Prefix
    Add a prefix to the notification emails for easier filtering.
    SMTP Authentication
    If the email server requires authentication in order to accept emails, select Yes.
    Send test email
    Click the Send test email to have a test email sent using the above settings.




  • 14. The configuration is now complete. Just click the Start using uberSVN button.
    Installation 01




  • 15. The welcome screen will automatically appear. Login using the admin username and password to start using uverSVN.
    Installation 01
    Login to uberSVN using your username and password.



1.3 Windows Installation Guide

Follow this procedure for installing uberSVN on a Windows server.
  • 1. Get the installation file from the WANdisco website.
  • 2. Run the installer, making sure that you have admin permissions.
    Winstallation 000
    Double click on the installer.
  • 3. If an Open File prompt appears, click the Run button.
    Winstallation 000b
    "Run" to continue the installation.
  • 4. Click Next.
    Winstallation 001
    "Next >" to to start the installation.
  • 5. Confirm where you want uberSVN to be installed, then click Install.
    Winstallation 03
    Time to Install the uberSVN files.
  • 6. Once all the files have been extracted, click Next >.
    Winstallation 04
    "Next >" to complete the installation.
  • 7. Installation will now complete, with uberSVN installed as a Windows service.

    There's an option to Start WANdisco uberSVN on boot, tick this to have uberSVN start up automatically whenever the server is started.

    Once you're ready to continue the configuration, click the Launch uberSVN now button, or if you want to complete your setup later, click Close. Remember to make a note (or bookmark) the uberSVN URL.
    Winstallation 05
    Click the big button, it's time to move on to the final configuration screens.


    If you choose not to start uberSVN now you'll need to perform a manual start using the procedure detailed in Starting uberSVN.
  • 8. The first step of the uberSVN web configuration wizard (Installation Settings) will appear. Enter the required details.
    Windows Setup 01
    Installation Settings.
    Installation Directory
    This is the directory in which the uberSVN installation files are saved. Once selected, this can not be changed later. If you need to change the address you will need to reinstall uberSVN.
    Repository Storage Location
    The directory in which all Subversion repositories are stored. This can be modified later.
    uberSVN key
    Enter the uberSVN key. You can get an uberSVN key from the registration section of the uberSVN website - www.ubersvn.com/register
    Terms and Conditions
    By continuing the installation of uberSVN you are confirming that you have agreed to the uberSVN Terms and Conditions.
    When all fields have been filled, click Next.




  • 9. Enter the details for the Admin User account.
    Installation 01
    Create an Admin User.
    Full name
    The admin account user's actual name. uberSVN will use this to refer to the admin user.
    Email
    The admin user's email address.
    Password
    The admin user's account password.
    Confirm Password
    Re-enter the password to confirm that you have typed it correctly.



  • 10. Check or change the portal and Apache settings.
    Installation 01
    Portal and Apache Setup.
    Base URL
    The URL that will form the basis for address used for accessing uberSVN and Subversion.
    tip"Caution: Avoid using localhost "127.0.0.1" address as the base URL uberSVN will assign the loopback address for the base URL, while this will work fine while the server is being set up and tested it will not work for users who try to connect to uberSVN over a network. We strongly recommend that you replace the localhost /127.0.0.1 address with the server's assigned IP address.
    base url
    The warning message that will appear if you leave the 127.0.0.1 loopback address in place.
    uberSVN Port
    Port used to access the uberSVN portal.
    Caution: Avoid using privileged ports uberSVN is set up using ports 9890 for the uberSVN portal and port 9880 for Subversion. These are non-privileged ports that don't need to be executed with root privilege for binding and listening for client requests. You can change the port numbers but you should avoid using common ports (numbered 1023 or lower) as these would make uberSVN a serious potential security hole: a successful exploit will have immediate control of the whole system, compromising it completely.
    Apache Subversion Port
    Port used for accessing the Apache Subversion repositories.
    Example Addresses
    At the bottom of the screen, the uberSVN portal and Repository Access URLs are presented. Installation 01
    Your actual addresses for accessing uberSVN and whatever Subversion repositories you set up.
    These are the URLs that you will use, given the settings that apply if you continue with the chosen settings.




  • 11. Enter the email settings,.
    Installation 01
    Email Settings. These are optional and can be set up later if required.

    Email settings are used by uberSVN to send notification emails out to users.
    If you don't want uberSVN to support email notifications, or plan to set this up later, click the Disable Email Notifcations .
    Use SSL?
    Enable secure socket layer encryption for extra email security.
    SMTP Server Address
    The address of your email relays server that will accept emails from uberSVN and send them on to users' emails accounts.
    SMTP Port
    The port used by the above email server to accept emails. The default SMTP port is 25.
    From Address
    Emails sent out by uberSVN will come from this address. These are the URLs that you will use, given the settings that apply if you continue with the chosen settings.
    Email Prefix
    Add a prefix to the notification emails for easier filtering.
    SMTP Authentication
    If the email server requires authentication in order to accept emails, select Yes.
    Send test email
    Click the Send test email to have a test email sent using the above settings.




  • 12. The configuration is now complete. Just click the Start using uberSVN button.
    Installation 01
    Completing configuration - the final setup screen..




  • 13. The welcome screen will automatically appear. Login using the admin username and password to start using uverSVN.
    Installation 01
    Login to uberSVN using your username and password.



Admin

The Admin guide runs through how to use uberSVN.

1. Starting/Stopping uberSVN (Linux)

Starting uberSVN

To start the uberSVN portal follow these steps:
  • 1. Open a terminal window on the server and login with suitable file permissions.
  • 2. Go to the uberSVN's binary directory, i.e.
    /opt/ubersvn/bin
  • 3. Run the start/stop script:
    [root@localhost bin]# ./ubersvncontrol start
    Starting Tomcat
    Using CATALINA_BASE:   /opt/ubersvn/tomcat
    Using CATALINA_HOME:   /opt/ubersvn/tomcat
    Using CATALINA_TMPDIR: /opt/ubersvn/tomcat/temp
    Using JRE_HOME:        /home/user/jdk1.6.0_21/
    Using CLASSPATH:       /opt/ubersvn/tomcat/bin/bootstrap.jar
    Please allow 30 seconds or so for the uberSVN portal to start
  • 4. Wait about 30 seconds, then open a browser and enter the portal's address - http://<:Server IP>:<port>/ubersvn

Stopping uberSVN (Linux)

To stop uberSVN portal:
  • 1. Open a terminal window on the server and login with suitable file permissions.
  • 2. Go to the uberSVN's binary directory, i.e.
    /opt/ubersvn/bin
  • 3. Run the start/stop script:
    [root@localhost bin]# ./ubersvnctl stop
    Stopping Tomcat
    Using CATALINA_BASE:   /opt/ubersvn/tomcat
    Using CATALINA_HOME:   /opt/ubersvn/tomcat
    Using CATALINA_TMPDIR: /opt/ubersvn/tomcat/temp
    Using JRE_HOME:        /home/user/jdk1.6.0_21/
    Using CLASSPATH:       /opt/ubersvn/tomcat/bin/bootstrap.jar
    Killing: 31981

2. Starting/Stopping uberSVN (Windows)

Starting uberSVN

The Windows version of uberSVN is run as a Windows service, so it requires less user intervention to run. However, there's a batch file available from the Start menu that you can run that will setup uberSVN to automatically start up on system boot.
Windows service utility
Starting uberSVN on Windows
Also present are batch files for starting and stopping uberSVN manually.

Stopping uberSVN (Windows)

The Windows version of uberSVN can be stopped by clicking on the Stop uberSVN batch file that is present in the Server Control directory of the uberSVN installation directory.
Windows service utility
Stopping uberSVN on Windows

3. Starting/Stopping the Subversion server (Linux)

To start the Subversion server follow these steps:
  • 1. Open a terminal window on the server and login with suitable file permissions.
  • 2. Go to the uberSVN's binary directory, i.e.
    /opt/ubersvn/bin
  • 3. Run the start/stop script:
    [root@localhost bin]# ./svnserverctl start
        
To stop the Subversion server follow these steps:
  • 1. Open a terminal window on the server and login with suitable file permissions.
  • 2. Go to the uberSVN's binary directory, i.e.
    /opt/ubersvn/bin
  • 3. Run the start/stop script:
    [root@localhost bin]# ./svnserverctl stop
        

4. Starting/Stopping the Subversion server (Windows)


5. Setting up a repository

Setting up a repository couldn't be easier. We made it that way, although, right now, the focus is on setting up a common-or-garden repository, without all the options available when manually setting up using pure Apache Subversion.
Although you can surely add a repository without referring to the following procedure, you might appreciate having it as an overview of the procecure and as an explanation of what everything means.
  • 1. Ensure that you are logged in as the administrator, or a users with sufficient (System Admin or Global Repository ) permissions.
  • 2. Click on the Repositories tab.
  • 3. Click on the ADD button.
    Windows service utility
    Add a repository
  • 4. Enter a name for the repository, by default uberSVN will use this name for the location (referred to as the DAV) which will be used to
    access the repository. You can choose a different name for the location, though we recommend that you keep it be as simple as possible
    as users may be called to regularly type it in.
    Windows service utility
    Name the repository
  • Repository Naming Rules: The following restrictions apply to the naming of repositories:
    • Limited to 25 characters.
    • colons (:), spaces, double forward slashes (//) are not permitted. Single forward slashes (/) are allowed, but not as the first character.
    • On Windows systems, the usual Windows restrictions apply with the following characters not permitted: -?*<>|
    • While names that contain multi-byte characters are permitted they are not recommended. Multi-byte characters are not supported by the repository browser, and may result in other problems.
  • 5. At this point you choose how to add the repository: Create a new empty repository, create a new repository using imported
    data, or, adding a repository that has already been created outside of uberSVN.

    There are two options for doing an import of an SVN dump file, either it is uploaded onto the server remotely (Import from uploaded dump file)
    or it's copied onto the server, then just imported from the server's own local drive (Import from dump file located on the server).

    In this example we'll Create a new repository. There's a checkbox option to Create trunk, branches and tags directories, these directories
    form part of the established workflow for using Subversion for software configuration management. You can read more about how these
    directories are used in the Beginners Guide to Subversion.
    Windows service utility
    3 options for new repositories: 1) New (blank), 2) new (with imported data) or 3) old (added into uberSVN).
  • 6. The repository is now created. To make the new repository appear, a graceful restart of the Apache service is triggered.
    Windows service utility
    Repository created.
  • 7. Finally, the repository's permissions need to be set up so that only the users who need to use the repository have access. By default
    each new repository is open, allowing all users full read and write access. While this is okay for starting out, you should set up repositories
    so that access is limited by default.
    Windows service utility
    Setting users permissions - you can add existing users or teams.

6. Adding Users

Manually add new users into uberSVN using the Add User Wizard.
  • 1. Open the uberSVN portal and click on the Users tab.
  • 2. Click on the Add button.
    Create User 01
    Users - Add Users.
  • 3. The User Creation screen will load, by default the Single tab will be shown. If you want to create more than a single user click the
    Multiple tab instead. Continuing on with the single user creation, enter user details.

    Single

    A
    Users - Single User Creation
    Full Name :
    The user's full name, e.g. Thomas Hobbes.
    Username:
    A name by which the user will be known on uberSVN. It should consist of a single word, with only numbers and letters.
    Password
    A password, which also should consist of numbers and letters only.
    Email:
    The email address for the user. Tick the Email password to user checkbox to have the password sent to the user in an email.
    When all fields have been filled, click CREATE. If, instead, you want to create another user then click CREATE & ADD, the screen will refresh, ready for the entry of a new user's details.



Multiple

To bulk import users into uberSVN you need either a Subversion password file (file format: username:password) or a comma delimited (CSV) with the file format: username, full name, email, password.
Users Main Screen
The Multiple tab, used for the bulk import of users.
Click Choose File and select a comma delimited (csv) file containing new users. The, click the Import button.

7. Adding teams

Use this procedure to add a new team to your uberSVN implementation.
  • 1. Login to uberSVN with suitable permissions (System Admin or Global Team Admin). Click on the Team tab and then click the ADD button.
    uberSVN Add Team 1
    The Multiple tab, used for the bulk import of users.
  • 2. Enter the new team's details:
    uberSVN Add Team 1
    The Multiple tab, used for the bulk import of users.
    Team Name: A name for the team.
    Description: A brief description of the team.
    Repositories: Add the repositories that you wish team members to be able to access.
    Users: Add users who you wish to be members of the team.

    When the details have been added, click the CREATE button.

  • 3. The team is now created and will appear at the end of the list of Teams. You can make changes to the team's settings by clicking
    on its name, or clicking on it's edit widget.
    uberSVN Add Team 1
    The Multiple tab, used for the bulk import of users.
  • 4. From the Team's screen it's possible to edit the labelling, add or remove repositories or team players, or assign admin permissions to
    one of the team players by clicking on the key widget so that it turns solid.
    uberSVN Add Team 1
    The Multiple tab, used for the bulk import of users.

8. Enabling SSL for the uberSVN portal

Secure connections to uberSVN by enabling SSL. This will ensure that connections to the uberSVN portal are encrypted.
  • 1. Click on the Administration tab (You'll need to be logged in with an admin account to see it). Click on the uberSVN Server sub-tab.
    Set the Enable HTTPS to Yes then click SAVE.
    uberSVN Teams List
  • 2. You may encounter your browser's "This Connection is Untrusted" screen. Don't be alarmed, this screen appears because certification is not yet in place.
    Click Add Exception...
    uberSVN Teams List
  • 3. Click Confirm Security Exception.
    uberSVN Teams List
  • 4. uberSVN will reload using https, on the Https port that was specified on the uberSVN Server screen (port 9900 by default).
    uberSVN Teams List

9. Disabling SSL for the uberSVN portal

  • 1. Login to uberSVN, click on the Administration tab.
  • 2. Click on the uberSVN Server sub-tab. Ensure that Enable Https is set to No, then click SAVE.
    uberSVN Teams List
  • 3. Refresh your browser, making sure that the port is changed from the ssl port (9900 by default) back to the standard uberSVN port (9890 by default).

10. Replacing the integrated repository browser

The integrated repository browser doesn't work with all Linux distributions. The following procedure can be used to replace the browser with the latest version of Sventon (supporting SVNKit):
  • 1. Download the latest version of Sventon with SVNkit support - http://prdownload.berlios.de/sventon/sventon-2.5.0-bin-svnkit.zip
  • 2. Extract Sventon to a folder of your choice.
  • 3. Navigate to that <extract_folder>/sventon-2.5.0
  • 4. Rename svn.war to RepositoryBrowser.war. Important! The case must match.
  • 5. On your ubersvn server stop the uberSVN service using:
    <uberSVN_Install_Directory>/bin/ubersvncontrol stop
  • 6. Navigate to <uberSVN_Install_Directory>/tomcat/webapps
  • 7. Delete the RepositoryBrowser folder and RepositoryBrowser.war
  • 8. Copy in your renamed RepositoryBrowser.war
  • 9. Change the owner and group of RepositoryBrowser.war with:
    chmod <New User>:<New Group> RepositoryBrowser.war
     
  • 10. Start uberSVN:
    <uberSVN_Install_Directory>/bin/ubersvncontrol start 
     
    This is required to expand the RepositoryBrowser.war into the webapps folder. This process can take a while to complete, so wait a minute or so before proceeding.
  • 11. Once uberSVN has restarted, stop it again.
  • 12. Navigate to <uberSVN_Install_Directory>/tomcat/webapps/RepositoryBrowser/WEB-INF
    Open applicationContext.xml in an editor. Search for "configurationReloadSupported" and change the value to "true"
  • 13. Save the applicationContext.xml file.
  • 14. Start uberSVN using uberSVN:
    <uberSVN_Install_Directory>/bin/ubersvncontrol start
    You now have a working replacement repository browser.

11. Changing the user/group that runs uberSVN

Under Linux, uberSVN is run by a user and group called ubersvn. If you need to run uberSVN using a different user and group then follow these steps:
  • 1. Open the bin/ubersvncontrol startup script in an editor.
  • 2. Change the TOMCATUSER=<New User>, the <New User> variable being the name of the user you want to run uberSVN. Save the changes and close the startup script.
  • 3. Open conf/conf.d/30-user.conf in an editor and replace the ubersvn user and group with the one you defined as the TOMCATUSER in step 2.
  • Change the ownership of httpdstarter:
    $ sudo su
    # find /opt/ubersvn | grep -v "httpdstarter" | xargs chown <New User>:<New Group>
    # chown root:<New Group> /opt/ubersvn/bin/httpdstarter
    # chmod 4750 /opt/ubersvn/bin/httpdstarter
  • 4. Restart Subversion and uberSVN:
    sudo /opt/ubersvn/httpdserverctl restart
    sudo /opt/ubersvn/ubersvncontrol restart   
uberSVN/Apache will now run with your chosen user and group.

Reference

The reference section runs through all of uberSVN's screens and explain what everything does. Some screens, relating to the administration of uberSVN may not be visible to you if your login account doesn't have system admin privileges.

1. Welcome

Create Replication Group 01
Login to the uberSVN portal.
The welcome screen features the login entry box. Enter a username and password.

1.1 Status bar

Status Bar The top of the uberSVN screen features some key elements of functionality.
Once logged in, there's a link "My Profile" to your account profile screen in the Users section. There's a help link, that leads to the online admin guide (that you're currently reading), and a link to the support page on the ubersvn.com website. whenever there's a system change, an alert window will appear at the top of the screen with a note to what has changed.
Most of uberSVN's features are available within the section tabs:

2. Dashboard

The dashboard shows the state of the uberSVN deployment. The main panel features the activity stream where comments from uberSVN users and repository activity is displayed. Other panels show the server's status, a twitter based news feed and some Quick Links to popular features that appear deeper within the uberSVN portal.
Create Replication Group 01
uberSVN starts at the dash.

3. Repositories

The Repositories is the very heart of uberSVN, it's where the Subversion repositories are added or modified.
uberSVN Repositor
Repository list screen.
The main Repositories screen lists all the Subversion Repositories that are currently running under uberSVN. Repositories that have been added, but then subsequently deleted from uberSVN will not appear on the list, even though they may remain installed on the server.
ADD
Click ADD to add a new repository (either created from scratch or imported).
FILTER:
A search entry box to search for a particular repository, useful if you are running a lot of repositories.
Latest
Repositories listed in order of creation.
Favorites (tab)
A list of repositories tagged as your favourites.
uberSVN Repositor - Add
Make a repository a favourite to give it top billing on the repositories screen.
Repository Widgets
Widgets give you one-click control over the repository: Click the COPY (Configure Widget) to make a copy of the repository. Click the"Magnifying glass" (Configure Widget) to view the repository through the repository browser. Click the "i" (Configure Widget) to view/edit the repository details. Clicking this widget has the same effect as clicking the repository's name. Click "Star" (Configure Widget) to add the repository to your favourites. Click the star to turn it solid, indicating that it is a favourite. The repository will be added to the Favourites tab until the star is clicked again, which will remove the favourite status.

3.1 Add Repository

uberSVN Repositor - Add
Add a repository: General Settings
Repository Name
A name for the repository. You can change it later.
Repository Naming Rules: The following restrictions apply to the naming of repositories:
  • Limited to 25 characters.
  • colons (:), spaces, double forward slashes (//) are not permitted. Single forward slashes (/) are allowed, but not as the first character.
  • On Windows systems, the usual Windows restrictions apply with the following characters not permitted: -?*<>|
  • While names that contain multi-byte characters are permitted they are not recommended. Multi-byte characters are not supported by the repository browser, and may result in other problems.
Location
The directory name for the repository that will appear at the end of the URL. Simple is best, use only lower case letters and numbers with no spaces. Choose carefully, the location can't be changed later.
URL
Shows the repository URL including your chosen DAV Location. This is the URL that you will use to access the repository on the web.
Click Next to move to the next part of the setup.
uberSVN Repositor - Add
Add New Repository: new repository
Create new repository
Create a new repository, tick the checkbox to also create trunk, branches and tags directories. Read more about Subversion's recommended directory structure.
uberSVN Repositor - Add
Add New Repository: Created from scratch
Import from dump file
Select Import from dump file to import the dump file from an already existing repository. The dump file must be less than 250MB.
uberSVN Repositor - Add
Add New Repository: Import from upload dump file
Import from a dump file located on the server
If there's a dump file located on the server it can be imported. There's no size limit if the file is imported from the server itself.
uberSVN Repositor - Add
Add New Repository: Import from dump file located on the server
Add an existing repository from the server
If there's a repository already set up on the server (independently from uberSVN) it can be imported. Once imported, a repository comes under full control of uberSVN.
uberSVN Repositor - Add
Add New Repository: Import from dump file located on the server.
Click DONE to complete the repository creation. Clicking CANCEL will return you to the repository list screen without saving any changes.

Permissions

uberSVN Repositor - Add
Add New Repository: Permissions
Once you're done adding the repository you'll automatically be taken to the new repositories Permissions tab in order to set up access rules. Changes made to repository permissions are made instantly, there's no need to submit changes - for this reason, take care when making changes.
Permissions can be controlled by uberSVN (uberSVN Internally Managed) or through an externally controlled Authorization file (User Alternative Authz File).
An external AuthZ file can be set up on a per repository basis, its location is set on the Administration tab of the Repository.
ADD
Enter the name of a user or a team that you wish to wish to provide with access to the new repository. As you type, uberSVN will list all the names that match the letters you enter.
Alert By default all repositories are created with Read & Write permissions assigned to the "Everyone" group. As you add specific permissions to individual users and the teams that you create, you may wish to delete the Everyone team permissions, or downgrade them to Read only.
Create New User
Use this link if you want to add a user to this repository that isn't already present in uberSVN.
Create New Team
Use this link if you want to associate a team to this repository that isn't already present in uberSVN.

3.2 Repository tab

If you click on a repository, you'll be taken to the repository tab where the repositories can be edited or managed.
Repository tab
View repository details.
url
The fully qualified web address of the repository. This is the same address that users will use to access the repository from their Subversion clients.
Activity Tab
All system activity / user comments will be tracked on the activity tab.
Users
The Users tab shows all users who currently have permission to use access the repository. If you have system admin or team privileges then you can remove a user by clicking on the cross. View Repository Graph
Click the cross to remove a team member or time itself.
To add or update go to the list from the Permissions tab.
Teams
The Teams tab lists all the teams that are associated with the repository.

3.3 Graph

View Repository Graph
View repository activity in the form of a graph.
The graph plots the change in size of the repository over the previous 2 hours and 20 minutes. The graph updates every 30 minutes, or whenever the uberSVN service is restarted.

3.4 Browse

View Repository Browser
View repositories, through the integrated Subversion Repository Browser.
The repository browser provides a web interface to help manage repository files and directories. There is a list of all the file changes, adds or deletions in any given revision.
uberSVN has a built-in repository browser that makes it easier to keep track of repository changes. This section runs through what you can do with the browser.
Tip
If you run into problems when using the repository browser, check the current Repository Browser Known Problems.

3.4.1 Repository Browser Guide

Login

Click on the browser tab and you'll see a login screen. This login is for access to Subversion itself, not uberSVN. You'll need to use an account that has permission to access the repository, Installation 01
Repository authentication required.

Main Repository Browser Screen


actions show recent changes filter show file extensions locked revision toggle drag

The main repository browser screen.
  • 1. The Actions drop-down menu lists context sensitive actions. Currently it includes a logout button.

    Installation 01
    Logout for the repository browser.
  • 2. The link [show recent change] will open a box containing the details of the last revision made on the repository.
    Included is a reference to the revision, Date and time that the change was made, the author, along with whatever Message was entered
    during the change.

    The Action notes the type of change that was made, and the Path shows the local path and file(s) that changed.
    Installation 01
    Show recent change link.
  • 3. The go! filter box lets to view a specific revision. Enter the revision number, change the path if required and click the go! button.
  • 4. The Show log and Show locks buttons open screens that show a log of all repository changes (Show log) and a list of files that
    have been locked Show locks. Files that are locked will be listed with a small padlock icon (see 6.)
    Installation 01
    Show log.
    Installation 01
    Show locked files.
  • 5. The Filter extension drop-down lets you limit the view of the current repository directory by whatever file types are present.
    By default, all file types will be shown.
    Extension
    Filter by file extension.
  • 6. Files that have been locked will show a padlock icon. It's not possible to lock a file from the repository browser, this can be done
    from a Subversion client, such as Tortoise. See Locking Files
  • 7. The Revision number links to a log of the changes made in the revision.
    Extension
    Filter by file extension.
  • 8. At the bottom of the main screen is another drop-down filter, offering Actions to perform on selected files. Use the check boxes to
    select files, or click the toggle button. Actions available are Diff entries and Show as thumbnails. The Diff entries actions will show
    selected files for comparison. The thumbnails view is intended to be used to view image files.
  • 9. The Drag&drop tray offers a way to pick out files or folders in the repository for performing actions. To use the Drag&Drop try, click on the icon
    image of a file of folder in the browser's main panel and drag it down to the drag&drop tray. The dragged item will then appear in the
    tray, ready to apply an action to. Select an available action from the drop-down menu and click go!.

    Extension
    drag&drop selector.

View file

From the repository browser you can view details about any files that are contained in the repository by clicking on the file's name.
Click on a file to view its details
To view file details, click on the name.
The file details screen will display the contents of the file, unless it is in binary format.
file details
File details screen.
There are some additional screens that offer specific details concerning the view being viewed.
Show log
View all revisions of the file, along with who made the change, what message they associated with the change. Optionally you can also view the type of change made, the file name and relative path. Show Log
File details screen.
Download
You can download the file to view locally. Just remember that changes made to the file won't be picked up unless you first copy it to the local copy and commit the changes.
Caution When downloading very large files, ensure that you have enough system memory to store them. There's a problem with downloading large files through the repository browser, which doesn't check that there's enough system memory to store the file. Downloading a file that is larger than the server's remaining RAM will cause the system to stop working or crash.
Blame
From the name of this rather useful tool you might think that Subversion's developers are used to living in a "blame culture". In fact, it's just really useful to be able to identify exactly who made a particular change to a file, especially when a file has been touched by a lot of people. Blame shows each line of the file along with which user last changed that line and in which revision the change was made. Installation 01
Blame neo for revision 6 changes.
Show raw
View a raw version of the file renders the file without any adornment, ideal for copying out code. Installation 01
Raw.
Diff to previous
Offers a comparison view of the file, useful if you need to review changes that have been made to a file. There's an option to Toggle line wrap, which forces the file to display within the window. Installation 01 There are two drop-down boxes offering additional options: Layout Change the way that compared files are displayed. Unified shows only the changed elements, Inline shows the file with the changed lines both in the before and after state, Side By Side, as the name suggests, shows the two revisions together for side by side comparison. Installation 01 Character format There's an exhaustive list of available character encoding types, so that any character rendering problems can be fixed by selecting the matching encoding type.

3.5 Administration

View Repository Admin 01
Administer the repository though the admin tab.
Repository Name
The name you have given to the repository. This can be changed at any time.
Repository URL
The web address for accessing the repository.
Storage Location
The file location of the repository on the server.
DELETE REPOSITORY
Click the DELETE REPOSITORY button to remove the repository from uberSVN's control. The repository files will remain in place but will not show up in uberSVN. After clicking the button you will be asked if you also want to delete the files from the disk. View Repository Graph
Caution Take care when deleting repository files from disk, this action can not be undone.
SAVE
Click save to save changes you make on the to the name, URL or storage location.

SVN Admin Options

uberSVN provides some functions for managing repositories that are available on the Administration sub-tab.

Verify

SVN Admin - Verify
SVN Verify command.
Run the Verify command to check the integrity of the repository data.

Hotcopy

SVN Admin - Hotcopy
SVN Hotcopy command.
Run the svnadmin hotcopy subcommand, which makes a full "hot" backup - so there's no need to take Subversion off-line, or stop users from committing changes to the repository.
Destination Repository Name
Name of the repository copy that you will create.
Destination Repository Path
The file path of the repository copy that you will create.

Dump/Export

SVN Admin - Dump/Export
SVN Dump command.
Run the svnadmin Dump subcommand, which saves out the repository's file data as an stdout "dump-file".
Select Revision By
Select all or revision.
Dump File Name
The name of the dump file you will create.
Dump File Path
The path to the dump file you will create.
Incremental Dump
Sets the dump file's first revision to contain only the files and directories modified in that revision, instead of being presented as the addition of a new tree, and in exactly the same way that every other revision in the dump file is presented.
Use Deltas
If the repository is very large you can tick Use Deltas to greatly reduce the dump file size, as only the changes are copied.
DUMP/EXPORT
Click the DUMP/EXPORT button to begin the dump process. SVN Admin - Dump/Export
Once run, you'll see a confirmation message that includes a path to the log.

Load

Run the SVNAdmin Load command to at a repository using a saved dump file.
SVN Admin - Load
SVN Admin Load Command.
Relative Path
The path to the repository.
Dump File
The full path to the dump file to be loaded.
Ignore UUID
Tick Ignore UUID to override the default behavior whereby the load command will use the UUID (unique serial number for the repository) from the dump file.
Force UUID
Tick Force UUID to ensure that the old UUID is maintained.
LOAD
Click the LOAD button to start the loading process.

3.6 Permissions

The Permissions tab is used to manage which users and teams are able to access the repository, and what read/write permissions they have.
View Repository Permissions tab
Set the repository permissions.
The permissions table lists both users and teams with their corresponding permissions. All users and teams will have one of three levels of access permission: No permission, which is indicated by the users or team not having a record on the table. Read-only permission, by which they are able to view repository files, but will be unable to commit any changes themselves. If the Read and Write radio button is selected then the user or team has full access to the repository files.
The Admin column will show if a user has admin permissions, which allow them to manage the repository structure, as well as the files that are stored in the repository.
Create New User
Use this link if you want to add a user to this repository that isn't already present in uberSVN.
Create New Team
Use this link if you want to associate a team to this repository that isn't already present in uberSVN.
UPDATE PERMISSIONS
Click UPDATE PERMISSIONS to save any changes that you make to the repository permissions.

Authentication

Options for how to handle authentication of the repository's users. The authentication method can be different for each repository hosted on uberSVN. View Repository Permissions tab
Set the repository authentication type.
uberSVN Internally Managed
uberSVN's default authentication option is to use the built-in htpasswd.
Use Alternative htpasswd file
Select this option to have uberSVN use a different htpasswd file for authentication. The location of the file is set on the Alternative htpasswd File tab, in the Apache Server section under the Administration tab.
LDAP / Active Directory Authentication
This option enables the LDAP/Active Directory authentication. Load Default Click to populate the LDAP settings using those that have been entered in the Default LDAP tab. Test Click to perform a test LDAP login using the entered settings.
  • Auth Name: The AuthName directive sets the name of the authorization realm for this directory.
  • LDAP URL: The LDAP URL is the address used to connect to and authenticate against the LDAP server.
  • AuthzLDAPAuthoritive: Specifies whether LDAP has exclusive control over authentication
  • AuthLDAPGroupAttribute: Specifies which LDAP attributes are used to check for group membership.
  • AuthLDAPGroupAttributeIsDN: directive specifies the use of the distinguished name of the client username when checking for group membership. Otherwise, the username will be used.
  • Require: Identifies which authenticated users can access a resource.
  • Anonymous Bind: Specifies whether users are allowed to connect through LDAP without supplying a username or password.
SAVE Click the SAVE button to store any change to settings that have been made.

3.1 Repository Browser

4. Users

UberSVN users (including administrators) are managed under the Users tab. New users are created or imported from here and any user properties can be modified.
Users Main Screen
Users main screen.
The main Users screen shows a list of users, along with their usernames and email addresses. From here you can:

  • Create Users - Click on Add. See the Create User section.
  • Delete a user - tick the check boxes, then click the Delete Selected button.
  • Search for a user - Enter part of the name or username of a user you are looking for into the Filter box.
  • Configure a user - Click the configure Configure Widgetwidget or click on a username.
  • Change a password - Click on the change password Password Change Widgetwidget.

4.1 Create User

Manually add new users into uberSVN using the Create User Wizard.
A
Users - Single User Creation
Full Name :
The user's full name, e.g. Thomas Hobbes.
Username:
A name by which the user will be known on uberSVN. It should be a single word, consisting only of numbers and letters.
Username Rules: The following restrictions apply to what form usernames can take:
  • Limited to 25 characters.
  • colons (:) are not permitted.
  • While usernames that consist of multi-byte characters are permitted, using them could potentially lead to problems.
Password
A password, which also should consist of numbers and letters only.
Email:
The email address for the users. Tick the Email password to user checkbox to have the password sent to the user in an email.

Configure User

You can view or configure user details by clicking on a user, or their configure widget. Most of the user details are presented on the Profile tab.

4.2 Profile

The profile tab shows the users information, avatar and contact details. When viewing with an account with admin privileges, an edit button will also appear, allowing you to make changes to the details. The avatar image can only be edited when logged in as the user (or by a user with system admin privileges).
Users Main Screen
Users - User Profile
Full Name :
The user's full name, e.g. Kevin Flynn.
Username:
A name by which the users will be known on uberSVN. It should consistent of a single word, with only numbers and letters.
Job Title
The user's position within your organization.
Location
The location of the office in which the user works.
Email:
The email address for the user.
Work Number:
The telephone number for the user.
Mobile Number:
The mobile telephone number for the user.
Other:
One of three option fields for additional information.
Share Profile With:
Choose who can view the user's profile: Everyone, Team Only or Nobody.
Quotation
A memorable saying or greeting from the user.
Upload Avatar
User avatars can only be uploaded or changed by the user (or a System Admin). To upload or change an avatar, click on the image and then click on browse. Select the image you want to use and then click Upload. Edit Avatar
Activity
The users comments and Subversion changes are logged in the Activity panel.
Teams
Lists the teams of which the user is a member. Click on the edit widget to make changes to the team.
Users Main Screen
Users - Edit Profile

4.3 Preferences


4.3.1 Change Password

Users prefs - Change Password
Current Password
Enter the current password in this box
New Password
Enter a new password. Passwords can only contain numbers and letters. The password you enter will be graded, Weak, Good or Strong. Users prefs - Password Grading Bar
Tip A strong password should contain 12 or more characters, mixing capital and small case letters and numbers.
Confirm Password
Retype the new password to ensure you entered it correctly the first time.
Update Password
Click the Update Password button to confirm that you wish to use the new password.

4.3.2 Mute List

Users prefs - Ignore List

Any users who have been set to be muted will be listed here, along with a ticked checkbox in the Ignored column. To un-mute a user, untick the checkbox and click the Update Ignore List button.
Click Cancel to close the Ignore List editor without making a change.

4.4 Permissions

Users perms tab
User permissions tab
From the Permissions tab the user's access priviledges are controlled.
System Admin
Tick the System Admin checkbox to give the user full admin rights for uberSVN. System Admin rights let users access all sections of uberSVN, including the Administration tab and all the admin sub-tabs, giving them complete control of uberSVN. For this reason it is prudent to limit the number of users who have Systems Admin rights.
Global Team Admin
Tick the Global Team Admin checkbox to give the user access to the Users and Teams Tabs. A user with Global Team Admin priviledges is able to create and delete Teams. A users with System Adminprivileges is still required to create new users.
Global Repository Admin
Tick the Global Repository Admin checkbox to give the user full acess to the repositories tab. The user will be able to create or delete repositories, as well as use all the available Subversion Admin commands.
Delegated Team Admin
The table shows the teams for which that the user has been delegated admin rights. Untick the Admin checkbox to remove the Team admin permissions.
Delegated Repository Admin
The table shows the repositories for which the user has been delegated admin rights. Untick the Admin checkbox to remove the Repository admin permissions.
UPDATE PERMISSIONS
The UPDATE PERMISSIONS button will save any changes that have been made to the Permissions tab.

5. Teams

Teams List

Click on the Teams tab to see the Teams List screen. All teams are listed, along with a description and the number of users and repositories associated with it. Clicking on the Team's name or corresponding Configure widget will open the Team's screen. uberSVN Teams List

View Team

svn dump svn dump Edit a User Group by clicking on its name. Use the Filter by Name entry box to search for a particular group.


6. Administration

The administration tab provides access to uberSVN's inner workings and is only available (visible) to users with system admin privileges.

6.1 Status

Administration 1 - status
Administration - status tab.
The Administration status tab provides a quick view of what's going on.

Notices

Message of the day
As an uberSVN administrator you can communicate with users by posting a message here. This will generate a message on the uberSVN Dashboard that will be pinned to the top of the message board. Administration 1 - status
Subscription Options
Click on the Subscription Options to either enable or disable the sending of these messages to the email account associated with your uberSVN account.
Notices
System changes and messages appear on the notice board.

uberSVN Stats

Lists the basic statistics for the server, useful for keeping an eye on application usage.
A
Number of Repositories
The number of repositories currently hosted by uberSVN. This will not include repositories that have been deleted from uberSVN that remain in place on the server's drive.
Total Size of Repositories
Displays the amount of disk space used by the repositories. Again, this will not included repositories that have been deleted from uberSVN that have been left in place on the server.
Number of Users
Shows the number of uberSVN that are create or imported onto the server.
Number of Teams
The number of teams that have been created on the server.

System Stats

Lists the basis hardware statistics, useful for keeping an eye on server load.
A
System OS Name
The operating system of the server on which uberSVN is running.
No. of CPUs
The number of processors or number of cores within the server's processor.
Total System Memory
The total memory that the uberSVN server has installed.
Total Free Memory
The total memory that remains free for assignment.

Server Status

Shows the current state of Apache and uberSVN.
A
Subversion Apache:
Green box indicates that Apache is running, a red box will display if Apache is not running. There's a Stop and restart button should you need to manually stop or restart the Apache server.
uberSVN:
Green box indicates that uberSVN service is running, a red box will display if the uberSVN service is not running.

Uptime

Shows how long the server and uberSVN have been running.
A
System
Indicates how long the system as been running.
uberSVN
Indicates how long uberSVN has been running.
Subversion Last Configuration Reload:
Indicates the time and date of the last Apache restart (which is triggered whenever a change is made to the Apache config file.

6.2 Apache Server

The Apache Server tab lets you modify the Apache Server which handles remote users access to the repositories.
A
Apache Server - Main
Server Name / IP
The server's IP Address. This is no longer editable after installation, if you need to change the server's address change the Base URL filed on the uberSVN Server sub-tab.
Server Port
The port that Apache will uses. By default this is set to 9880. You can change this to any port that you like, although you should avoid using a common port (one that is numbered 1023 or less) as these will require that uberSVN is run with root privileges.
Bind IP
On a multi-homed server (one with multiple network cards) you would need to specify which IP address that Apache will be bound on.
HTTPS Enabled
Tick this checkbox to encrypt Apache traffic using SSL.
Apache Server Stop/Start/Restart
The Stop and Restart buttons allow you to manually trigger a stop or restart of Apache. System changes that force Apache to be restarted will happen gracefully, you don't need to do anything to trigger them.

Advanced Settings

The more advanced settings relate to Apache's fine tuning. It's recommended that you don't change these settings unless you're quite familiar with Apache's inner workings. Apache Server - Advanced
Apache Server - Advanced
Timeout
The number of seconds before receives and sends time out. default: 300
Max Keep Alive Requests
The maximum number of requests allowed during a persistent connection. Set to 0 for unlimited connections. default: 100, which ensures a balance between connection capacity and performance.
Keep Alive
Whether or not to allow persistent connections (more than one request per connection). Set to "Off" to deactivate. default: on
Keep Alive Timeout
Number of seconds to wait for the next request from the same client on the same connection. default: 15
Threads per Child (Windows installation only)
ThreadsPerChild parameter in the httpd.conf file specifies the number of requests that can be handled concurrently by Apache. Requests in excess of the ThreadsPerChild parameter value wait in the TCP/IP queue. Having the requests wait in the TCP/IP queue can get you the best trade-off between response time and throughput. default: 300
Max Requests per Child
Maximum number of requests that the Apache child process will serve before the child expires. Setting a maximum value can help avoid long-lived process induced memory leaks, however, in most setups no maximum is set. default: 0 - ensures that child processes never expire.

httpd.conf Editor

Apache Server- Httpd.conf Editor
Users - Httpd.conf Editor
The httpd.conf editor allows for manual changes to be made to Apache's main configuration file. Click Save to store any changes you have made. Click Reset to ignore any changes and return to the previous settings. Any change to the httpd.conf file will come into effect as soon as the Apache process is restarted.

Alternative htpasswd File

Alt passwd file
Apache Server - Alternative htpasswd File
Allows you to replace the default htpasswd file with a different one. Simply browse to and select a different htpasswd file to set it as the password file to be used. This selection is made on a per repository basis.

Alternative authz file Editor

Alt passwd file
Apache Server - Alternative authz File
Allows you to replace the default authz file with a different one. Simply browse to and select a different authz file to set it as the password file to be used. This selection is made on a per repository basis.

6.3 uberSVN Server

uberSVN's own server settings can be managed from this screen.
uberSVN Server - Settings
uberSVN Server - Settings
Install Path
The local path to where uberSVN has been installed.
Base URL
The hostname or IP address on which uberSVN is accessed.
Server Port
The port used to access the uberSVN portal.
Default Repository Path
The local path to the directory in which all Subversion repositories are stored.
Update Frequency (days)
This sets how frequently uberSVN checks for software updates. Choose from Daily (24h), Weekly (7 days) or Monthly (30 days).
Https Enabled
Choose "Yes" to encrypt uberSVN using SSL. In this case you would need to access uberSVN using https.

6.4 Preferences

The preferences screen is used to manage various uberSVN setting, including the visual themes, Social Interface messanging and Quick Links.
A
Administration- Preferences
Social Interface
uberSVN integrates messaging and activities streams that are associated with the Dashboard, teams and repositories. The Social Interface control lets you disable the feature so that no further messages or activity will be displayed.
Theme
The Display Theme is currently not implemented in this beta version. In future it will be possible to change the way that messaging streams are displayed.
Quick Links
The Quick Links panel that appears on the dashboard is edited from here. You can delete or add your own links, either deep linking to a screen in uberSVN, or an external link. Due to limited space on the dashboard there is currently a maximum limit of 8 Quick Links.
Dashboard Twitter Account
Subscribe to a Twitter feed by entering an address into the Twitter Account entry box and clicking the SAVE button.

6.5 Email Server

The Email Server screen is used to set up uberSVN to send emails out (using a seperate email server).
A
Users - Email Server
Enable email notifications
Select "Yes" to enable the sending of notifications emails to users who have subscribed to message/activity streams. Select "No" to disable all notification emails.
Use SSL
Select "Yes" to use encryption for connections to the mail server. Select "No" to disable encryption of email traffic.
SMTP Server Address
The address IP or hostname) of the email server.
SMTP Port
The port used by the mail server, the default port is 25.
From Address
This is the address that will appear as the source of notification emails, it will also be the address to which replies are sent.
Email Prefix
An optional value that is stuck on the front of all notifications that can assist in email filtering.
SMTP Authentication
If the mail server requires authentication, select yes and provide a mail account username and password.
SAVE
Click the save button to save any changes you have made to the email server settings.
Test
Clicking Test will trigger a test message to be sent to the email address associated with the user account that is currnently logged in.

6.6 Logs

The Logs tab provides access to a number of system logs for uberSVN, Subversion and Apache.
A
Administration - Logs
Which log files appear will depend on which Subversion commands have been run and which uberSVN tools have been used.
ubersvn.log
The main log file for uberSVN. It tracks most of the system changes that are made through the uberSVN console.
error_log
The main uberSVN error log, tracks system behavior that can help with diagnosing problems.
verify_dumpXX-Load-Messages.log
Generated after a successful run of a Subversion dump.
RepoName_dump1-Load-Messages.log
Generated after a successful repository data Load.
RepoName_dump1-Dump-Messages.log
Generated after a successful dump
verify-repositoryname-mm-dd-yyyy_hh-mm-ss-Messages.log
Generated after running a repository verification.
svn_logfile
Shows log messages from the repository.
error.log
The error file is the place where Apache httpd will send diagnostic information and record any errors that it encounters in processing requests. It is the first place to look when a problem occurs with starting the Subversion server or with the operation of the server, since it will often contain details of what went wrong and how to fix it.
access.log
The server access log records all requests processed by the server

6.7 Updates

Once uberSVN has been installed, there's no need to re-install from scratch when a new version is release, instead the Updates section allows you to view which new versions of components are available and select which ones you want to install.
A
Administration - Updates
uberSVN-httpd-lin-64
The Apache 2 Server (HTTPd).
uberSVN-tomcat-lin-all
The Tomcat Application Server.
uberSVN-svnbinaries-lin-64
The Subversion Server binaries.
uberSVN-ubersvn-all-all
The uberSVN core files.
uberSVN-updater-all-all
The uberSVN updater.
uberSVN-openssl-lin-64
The open source SSL encryption protocols used to secure uberSVN activity.

Completing an Update

Updating uberSVN couldn't be simpler. Here's a run through of the process.
Alert: Problem running Apache on a privileged (numbered lower than 1024) port:
As part of the update process, Apache is updated so that the new LDAP features will work. The updater doesn't have root privileges, so if you are running Apache on a port that is lower than 1024 you'll need to run an extra script (opt/ubersvn/bin/fixup.sh) to finish the update.
  • 1. Login to uberSVN. Click on the Administration tab, then click on the Updates sub-tab. uberSVN's constituent components are listed (as described in the previous section). To see if updates are available, click on the Check For Updates button.
    uberSVN Server - Settings
    uberSVN Updates - Step 1 "Check For Updates"
  • 2. If there are updates available, they'll show up in the status column. To download and install available updates, click the Download Components button.
    uberSVN Server - Settings
    uberSVN Updates - Step 2 "Download Components"
    ** Alert! **Alert
    Once an update has started, Don't disconnect from the network and don't restart uberSVN.
    Any unexpected interuption to the update may cause you to get 'stuck in progress'. If this happens you'll need to complete a full reinstallation.
  • 3. You may need to refresh the screen to confirm the that the updates have been downloaded. Successful downloads will result in the status of the downloaded components changing to Ready for update. Click the Update Components button to continue the process.
    uberSVN Server - Settings
    uberSVN Updates - Step 3 "Ready for update"
  • 4. An alert box will appear, warning you that during the next stage of the update, uberSVN and any hosted Subversion repositories will be briefly unavailable. You may wish inform users of the outage.


    Click the Continue button to complete the update. Clicking Not Yet will cancel the update, although the update files will remain available to update at a later date. uberSVN Server - Settings
    uberSVN Updates - Step 4
  • 5. A refresh of the screen will confirm that the Last Update Status for the updating components is Success. Congratulations, uberSVN is up-to-date.
    uberSVN Server - Settings
    uberSVN Updates - Step 5

6.8 Default LDAP

The Default LDAP tab stores settings for use when an LDAP service is used for managing authentication for Subversion users.
LDAP
Administration - Default LDAP settings
Default Auth Name
The AuthName directive sets the name of the authorization realm for this directory. This realm is a name given to users so they know which username and password to enter for authentication.
Default LDAP URL
The LDAP URL is the address used to connect to and authenticate against the LDAP server.
Tip LDAP URLs follow the format: ldap(s)://host:port/basedn?attribute
  • host is the fully qualified domain name or IP of the LDAP server.
  • port is the network port of the LDAP server.
  • DN is the Distinguished Name to use as the search base.
  • attributes is a comma-separated list of attributes to retrieve.
Default AuthzLDAPAuthoritive
A directive that controls whether LDAP has exclusive control over authentication (Yes) or whether other authorization methods may attempt to authorize the user (No).
Default AuthLDAPGroupAttribute
Specifies which LDAP attributes are used to check for group membership. When not specified mod_authnz_ldap uses the member and uniquemember attributes.
Default AuthLDAPGroupAttributesDisN
When set to Yes, this directive specifies the use of the distinguished name of the client username when checking for group membership. Otherwise, the username will be used.
Default Require
The Require directive identifies which authenticated users can access a resource. A specific user or group can be specified or valid user can be used to indicate that all valid users can access the resource.
Default Anonymous Bind
Alert There's currently an error with the Default Anonymous Bind selector that appears if a browser other than Mozilla Firefox or I.E. 9 is used. If you select Yes then you will also need to enter something into the Default LDAP Bind DN and Default LDAP Bind Password fields. To save your LDAP settings, enter arbitrary characters into these fields before clicking SAVE.
Set to "Yes", this will allow users to connect through LDAP without supplying a username or password. Anonymous binds simplify common search and read operations, by not requiring users to authenticate to the directory first.
Default LDAP Bind DN
The bind DN is the user on the external LDAP server permitted to search the LDAP directory within the defined search base.
Default LDAP Bind Password
The password required for the connecting user.
SAVE Click on the SAVE button to store changes you have made to the Default LDAP settings.
Test LDAP Connection Click to have uberSVN attempt a connection using the provided LDAP server details. This is only a test that the LDAP server is accessible and doesn't check that everything is set up correctly.

Teams

Teams List

Click on the Teams tab to see the Teams List screen. Each team is listed, along with a description and the number of users and repositories associated with it. Clicking on the Team's name or corresponding Configure widget will open the View Team screen. uberSVN Teams List

View Team

svn dumpsvn dumpEdit a User Group by clicking on its name. Use the Filter by Name entry box to search for a particular group.

7. Introduction to Subversion

7.1 So, what's Subversion?

Subversion is a version control system, a software toolset that helps people to manage changes that are made to collections of shared files. Even when we work alone, most of us will make use of some form of version control, although often crude and inconsistent - such as when we use an application's SAVE AS and cook up a new file name to distinguish the new version from the old. Without version control systems, collaboration (especially in software development) quickly devolves into a horrible mess as different contributors make change to the same files, overwriting or just mangling each others work.
VCS not SCM
There's a specialist form of version control system (called a Configuration Management system) designed specifically for handling software development. Although Subversion is most often used for software development it remains a mainstream version control system that is ready to handle files and documents of pretty much any type, and is occasionally put to novel use, such as managing backups, shared todo lists and even in the writing of collaborative fiction.

Version Control Gives You:


  • Backup and restore
    All changes are recorded and available for retrieval. If you make a mess when changing a file you can get back to the unspoilt version of the file with minimal time and effort.
  • Synchronization
    When you work from a Subversion repository, you are always working with the latest version.
  • Logging changes
    Changes made through Subversion can be documented with messaging that help someone to understand why changes were made.
  • Playing in the sandbox
    Subversion's ability to guard against damaging changes lets you try big risky changes, safe in the knowledge that should you cause a mess, it's easy to go back to the good old stable trunk.
  • Branching and merging
    Development need not take a linear path. With Subversion it's possible to manage multiple version of files at the same time.

Subversion Gives You:

Subversion was originally written by a group of CVS (Concurrent Versioning System) users who had become frustrated with what they saw as major flaws in CVS's implementation. So when people talk about Subversion's key features, they usually talk about the things it does that CVS can't do.
  • Changes to repositories are true atomic operations
    Don't worry, there's no radioactivity, that's atomic in the original Greek meaning, as in 'indivisible'. When a change is committed to a Subversion repository it is either fully completed or not done at all. This transactional approach to changes is important for maintaining consistency and protecting against corruption.
  • Files can't hide from Subversion.
    You can rename them, move them or even remove them and Subversion will still track their history.
  • It's the size of the change in the file, not the size of the file in the change
    It's a key property of the Subversion repository model that the cost of an operation is proportional to the amount of change, not the size of the file that is changing.
  • Branching and tagging are cheap operations
    Branches and tags are both handled using a "copy" operation. A copy takes up a small, fixed amount of space. Any copy is effectively a tag. Committing to a copy automatically makes it a branch.
  • Efficient handling of binary files
    Subversion handles binary using a diffing algorithm. So just like with text files, it can store successive revisions of a binary file without having to store a full copy of the file for each revision.
  • Subversion supports and versions symbolic links
    A versioned symbolic link appears as a true symbolic link. On platforms that that don't support them (pre-Vista Windows) they behave like normal files, but Subversion treats the link target as editable.

7.2 How Subversion Works

Subversion uses an approach to versioning called Copy-Modify-Merge which has some big advantages over earlier systems that usually locked files when they were edited to ensure that two people couldn't change a file at the same time. With Copy-Modify-Merge any number of people can make a change to a file at the same time without problem. Each person takes a copy of the file from the repository, this is called a Working Copy and is a snapshot of the file from the latest revision. Changes are always made to this working copy, and when the editor is ready to share the changes, the file is committed back to the repository, where it is given a new revision number.
svn explained 01
A file is added to the repository and undergoes a series of changes.
Each time the file is changed and committed to the repository it generates a new snapshot of the file. However, this snapshot is not a full copy of the file, instead it is a diff, which only contains a description of what has changed in the file. The above illustration shows how the changing state of snack.txt is recorded as series of additions and subtractions. No matter what changes are made, or when they are made, it will be possible to recreate any revision by applying the appropriate diffs.
Revision numbers are global, not file specific
The above illustration may give the impression that the revision number is specific to the file, as in snack.txt. In Subversion this is not the case as the revision number reflects any changes that are made within the entire file system. So it's not really revision 5 of snack.txt, more precisely it is the version of snack.txt that appears in revision 5 of the repository, even if it is the only change that was made in revision 5.

Conflicting Changes

So, what does happen when two people make a change to the same file? How does Subversion handle conflicting changes? We'll run through an example situation, illustrated below.
svn explained 01
Using Subversion means your food fights leave an audit trail...
  • 1. We checkout a file, snack.txt from the repository, the latest version is Revision 4. The file contains a list of sandwich ingredients. We edit the working copy of the file with our own sandwich preferences.
  • 2. Our colleague, Debs, is already working on snack.txt and commits changes that turn the sandwich into a toastie in revision 5.
  • 3. Having completed our edit of the file, we try to commit our changes, but the commit is rejected because Subversion identified that our revision is out of date, and if our changes are committed, the changes that Debs made in revision 5 will be overwritten.
    svn explained some more
    What an out of date error looks like on the Tortoise Subversion client (on Windows).
  • 4. We attempt an update, this downloads revision 5 of snack.txt and attempts to merge it with our working copy. If the changes between the two versions are in different places within the file there's a good chance that the update will successfully merge the version of the file with revision 5. Unfortunately, in this case the changes can't be merged because the changes happen in the same place. Fear not! We're using Tortoise, the Windows Subversion client which provides some useful tools for dealing with the conflict.
    Tip
    When Subversion detects a conflict it creates 3 temporary files:

             file.mine (your current working copy)
             file.rOldRev (the file at the revision before your changes were made)
             file.rNewRev (the file as it is in the latest revision in the repository)

    Subversion also annotates the original file to show the conflicts within the file (illustrated in the image below).
    svn conflict
    How a conflicted file is tagged to aid editing.
  • 5. The conflicted file can now be edited so that both sets of changes are included, or whatever solution is best. Either way, Subversion helped stop the loss of work, breaking of files and potential fisticuffs at dawn. In this case, snack.txt is kept as a toastie but is given a mutually agreeable filling.
    Tip
    After a conflicted file has been fixed, you tell Subversion that the conflict has been resolved. Subversion will then delete the three temp files and allow the file to be updated or committed.
            Conflicts rarely occur if you remember to do an update of your local copy before making any changes.

    svn explained 01
    The log view of snack.txt showing the changes over.

7.3 Directory structure

Subversion doesn't force you to organize your files in any particular way, although there is a best practise for how to keep Subversion repository files. This isn't essential, but as the term 'best practise' suggests, everyone agrees this is a good way to work - especially those who started out by ignoring it and ended up in a mess.
directory structure
A repository created with the recommended directory structure.

.svn

Every directory in a working copy contains a administrative directory called .svn. The files in each administrative directory help Subversion recognize which files contain unpublished changes, and which files are out of date with respect to others' work. There's never any good reason for entering the directory and making any manual changes - just leave it alone.
Alert
Don't delete or change anything in the .svn directory! Subversion depends on it to manage your working copy. If you accidentally remove the .svn subdirectory, the easiest way to fix the problem is to remove the entire directory (a normal system deletion, not svn delete), then do an svn update from a parent directory. The Subversion client will pull in a fresh copy of the directory you've deleted, along with a new .svn folder.

Trunk

The trunk directory is for current development code. The name is a reference to a growing trunk of a tree, not a place to store your spare tyres. This is where your current release code should be stored. It's best not to muddy the Trunk directory with revisions or release names.
http://10.2.5.2:9880/encom/trunk

Branches

Growing off the trunk are your branches. Branches, like the branches of a tree are "offshoots" of the trunk. The idea is to use branches to work on significant changes, variations of code, without causing disruption to the current release code.

Bug fixing on a branch.

A major bug might be fixed on a branch created for this purpose. This allows for bug fixing changes to be worked on without the potential for disrupting other work going on in the trunk/development branches.

"Toe in the water" branches

It's common to use a branch as a code "sandbox" when you want to try a new technology out. If everything gets broken, you can walk away, with no risk to the working code, but if the experiment works out, it can be easily merged back into the trunk.
http://10.2.5.2:9880/encom/branches/R1.02
http://10.2.5.2:9880/encom/branches/soapflax

Tags

Finally there are tags. Tags work like branches, but are not meant to be developed. Instead, they are code milestones, giving you a snapshot of the code at specific points in its history.
http://10.2.5.2:9880/encom/tags/version1.03

Tagging Bugfix / development branches

When you create a code or bug fix branch it's useful to create a tag of the code before the changes are made (called the "PRE" tag) and a tag after the bugfix or code change has been made (called the "POST" tag).
http://10.2.5.2:9880/encom/tags/PRE_authchange_bug9343
http://10.2.5.2:9880/encom/tags/POST_authchange_bug9343

A Typical Subversion project

directory structure
An illustration of how a Subversion Repository evolves using branching, tagging and a code trunk.
Alert
Subversion itself makes no distinction between tags and branches. It won't stop you from committing changes to tags or fixing major bugs on the trunk, it's important that you are aware of this so you can guard against mistakes. A benefit of using a Subversion client such as TortoiseSVN is that they add a lot of useful functionality that helps you guard against errors.

No comments:

Post a Comment