The Subversion move/migrate from one server to another, shall be divided into 3 steps: Backup Create Import



Similar documents
Subversion, WebDAV, and Apache HTTP Server 2.0

SVNManager Installation. Documentation. Department of Public Health Erasmus MC University Medical Center

Talend Enterprise Data Quality. Installation Guide. 5.0_a

Managing Software Projects Like a Boss with Subversion and Trac

Managing Source Code With Subversion

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

SVN Authentication and Authorization

Setup a Virtual Host/Website

Partek Flow Installation Guide

Polarion Application Lifecycle Management Platform. Installation Guide for Linux

GestióIP IPAM v3.0 IP address management software Installation Guide v0.1

INUVIKA OVD INSTALLING INUVIKA OVD ON RHEL 6

While are you still in Nagios working directory, create a new file for DNS servers monitoring

How To Install Storegrid Server On Linux On A Microsoft Ubuntu 7.5 (Amd64) Or Ubuntu (Amd86) (Amd77) (Orchestra) (For Ubuntu) (Permanent) (Powerpoint

LATEX Document Management with Subversion

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn

Server Installation/Upgrade Guide

Deployment - post Xserve

How to Install Multicraft on a VPS or Dedicated Server (Ubuntu bit)

BlueJ Teamwork Repository Configuration

Version Control with Subversion

Written by Wirabumi Software Sunday, 30 December :27 - Last Updated Thursday, 03 January :52

Railo Installation on CentOS Linux 6 Best Practices

Configuration Guide. Remote Backups How-To Guide. Overview

Introduction to Subversion

Beginning with SubclipseSVN

How To Synchronize the easystore to the AD

Git Fusion Guide August 2015 Update

Desktop : Ubuntu Desktop, Ubuntu Desktop Server : RedHat EL 5, RedHat EL 6, Ubuntu Server, Ubuntu Server, CentOS 5, CentOS 6

Providing an Effective Intranet Knowledge Base Using Linux and Open Source Software

TECHNICAL NOTE Stormshield Network Firewall AUTOMATIC BACKUPS. Document version: 1.0 Reference: snentno_autobackup

Install Cacti Network Monitoring Tool on CentOS 6.4 / RHEL 6.4 / Scientific Linux 6.4

Upgrading VMware Identity Manager Connector

CLOUD API DOCUMENTATION v2.0. Get list of cloud servers in account

Installing Booked scheduler on CentOS 6.5

OpenGeo Suite for Linux Release 3.0

Cloud Homework instructions for AWS default instance (Red Hat based)

ULTEO OPEN VIRTUAL DESKTOP UBUNTU (PRECISE PANGOLIN) SUPPORT

Version control with GIT

Apache & Virtual Hosts & mod_rewrite

IceWarp to IceWarp Server Migration

File Manager User Guide

Backing Up and Restoring Data


owncloud 8 and DigitalOcean Matthew Davidson Bluegrass Linux User Group 03/09/2015

Step One: Installing Rsnapshot and Configuring SSH Keys

Software Configuration Management Plan

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

Migrating helpdesk to a new server

Software Delivery Integration and Source Code Management. for Suppliers

Virtual Machine daloradius Administrator Guide Version 0.9-9

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

Installation Guide for contineo

Oracle WebCenter Content Service for Microsoft Exchange

UVOS WEB REGISTRATION EXTENSION MANUAL

A Beginner's Guide to Setting Up A Web Hosting System (Or, the design and implementation of a system for the worldwide distribution of pictures of

Backup and Recovery Procedures

Installation Guide. Copyright (c) 2015 The OpenNMS Group, Inc. OpenNMS SNAPSHOT Last updated :19:20 EDT

nitrobit update server

Installation & Upgrade Guide

Getting Started. Backup Repositories. Getting Started 1/6

Release Notes Date: September 2013

A SHORT INTRODUCTION TO DUPLICITY WITH CLOUD OBJECT STORAGE. Version

Version Control Tools

Installation Guide. Release 3.1

AVALANCHE MC 5.3 AND DATABASE MANAGEMENT SYSTEMS

Intro to Docker for CMS

Introduction to the Git Version Control System

Security Issues in Web Programming. Robert M. Dondero, Ph.D. Princeton University

You can find a lot of great resources on the internet for setting up VNC on Linux!

Real Vision Software, Inc.

Introduction to Source Control Management in OO 10

A Git Development Environment

ELF WP 2 UML repository instruction

Redmine Installation on Debian. v1.1

Installation / Backup \ Restore of a Coffalyser.Net server database using SQL management studio

Single sign-on websites with Apache httpd: Integrating with Active Directory for authentication and authorization

Chapter 3 WebSphere Portal Server V6: Configuration Data Transfer to DB2 Introduction

dotdefender v5.12 for Apache Installation Guide Applicure Web Application Firewall Applicure Technologies Ltd. 1 of 11 support@applicure.

- 1 - SmartStor Cloud Web Admin Manual

Symantec Backup Exec 12.5 for Windows Servers. Quick Installation Guide

Magento Search Extension TECHNICAL DOCUMENTATION

Ulteo Open Virtual Desktop Installation

Subversion Server for Windows

StreamServe Job Gateway

OpenCATS Documentation

HOW TO SETUP AN APACHE WEB SERVER AND INTEGRATE COLDFUSION

System Administration and Log Management

Revision control systems (RCS) and

INUVIKA OVD INSTALLING INUVIKA OVD ON UBUNTU (TRUSTY TAHR)

How To Set Up A Backupassist For An Raspberry Netbook With A Data Host On A Nsync Server On A Usb 2 (Qnap) On A Netbook (Qnet) On An Usb 2 On A Cdnap (

NComputing vspace Server 8.3 for Windows. Software and Firmware Upgrade Guide. Document version 1.2

MS SQL Server Database Management

Secure Messaging Server Console... 2

Parallels Plesk Automation

Web Server using Apache. Heng Sovannarith

Transcription:

= Howto Move a Subversion Repository from One Server to Another = Recently I had to move a subversion (svn) repository to another or lets say new server. I needed to upgrade the servers hardware and software, so a complete migration had to be done. After reading the Subversion book [1], I found that actually moving a subversion repository from one server to another, and preserve all your version/revision history is not a very difficult task to do! I was really surprised of that and I am sure after you finish reading this documentation you shall be too ;) At work, we had more than one repository on the svn server, and for each project we had a separate repository. In the beginning I thought that its a complicated task to do, but found out that I am wrong. The Subversion move/migrate from one server to another, shall be divided into 3 steps: Backup Create Import Step 1: Backup Backup all your old repositories, and this can be done by dumping the subversion repository to a dump file: # svnadmin dump /path/to/repository > svn_repo_name.dump The dump file contains all the revisions you have made to your svn repository, and thats why it will probably be quite large. Not to foget that it even includes files you may have deleted in a previous revision. Example: # svnadmin dump /usr/local/svn > mysvn_repo.dump Step 2: Create In this step we need to create an empty repository. This can be done using the following command: # svnadmin create /path/to/repository Example: # svnadmin create /usr/local/newsvn

Step 3: Import Now copy the dump file from the old svn server to the new one, this is left to you. Use whatever technique to do so. After you finish copying the dump file from the old svn server, its time to import our old repository into the new repository we just created. This can be done using the following command: # svnadmin load /path/to/repository < svn_repo_name.dump Example: # svnadmin load /usr/local/newsvn < mysvn_repo.dump Note: If you want to force subversion to use the same UUID for the new repository as the old repository. All you need to do is add the following to the load command: # svnadmin load --force-uuid /usr/local/newsvn < mysvn_repo.dump Now we have our repository working on our new server. = APACHE SVN CONFIGURATION = If you want to configure apache to work with svn and be able to access it from a remote location, then please read the apache configuration howto below. Make sure you have the Apache configuration directives for serving Subversion repositories through Apache HTTP Server installed, if not install it: - For Redhat/CentOS - # yum install mod_dav_svn - For Debian/Ubuntu - # apt-get install libapache2-svn I shall continue working with CentOS for this tutorial. There shall be simple changes such as file locations if you continue with Debian or Ubuntu, but that shall not be a hard task to do, right? :)

Now to configure our subversion to be accessed from the web, let add the directives needed. Open the subversion configuration file found in the Apache conf.d directory: # vim /etc/httpd/conf.d/subversion.conf Add the following (Please change svn repository paths to suite your needs): <Location /svn> DAV svn SVNPath /usr/local/svn AuthzSVNAccessFile /usr/local/svn/conf/authz Satisfy Any Require valid-user AuthType Basic AuthName "Subversion repos" AuthUserFile /etc/httpd/htpasswd </Location> For security reasons and Access Controls to be used with the subversion, we used the "AuthzSVNAccessFile" option. This is to help us make acl's on our repositories and give specific access rights to specific groups. The file holding our ACL in the above example is "/usr/local/svn/conf/authz", you may use your own file location and name. Also, we are using here basic apache authentication, and we are storing user names and passwords in the file "/etc/httpd/htpasswd", you may use your own file location and name too. Save the "subversion.conf" file and exit. Now lets add some users for web access. For the first time, we shall be using the -c option to create the file, after that when creating anther user, we won't be needing this, because if you use it? you shall erase the current db and create a new one. Let's add a user called "admin", "ali", and "mohamed": # htpasswd -cm /etc/httpd/htpasswd admin # htpasswd -m /etc/httpd/htpasswd ali # htpasswd -m /etc/httpd/htpasswd mohamed Enter a password twice for each.

I shall suppose now that I want to create 3 groups, with the following names, permissions, and repository access level: Note: 1- Administration Group name: admin perm: rw repo: / 2- Staff Group name: staff perm: rw repo: /files 3- Documentation Group r = read w = write name: doc perm: r repo: /doc What all that means? This means that the Administration Group has full access on the svn repository, because we shall give it access on "/". Whereby the Staff Group has full access only to the "/files" location inside the repository. Finally, the Documentation Group has read only access to the "/doc" location inside the repository. Now let's go and configure our acl's, so edit the acl file: # vim /usr/local/svn/conf/authz Add the following: [groups] admins = admin staff = ali, mohamed readers = mohamed [/] @admins = rw

[/files] @staff = rw [/doc] @readers = r Save and close the file. We are finished configuring the svn web access. Now let's make sure our Apache goes up after a reboot: # chkconfig httpd on And finally let's restart the Apache Server: # service httpd restart Now for the user with the "admin" priveliges, he/she can access the svn from the web using the following url (a username/password shall be required): http://example.com/svn For users in the staff group, the url is the following (a username/password shall be required): http://example.com/svn/files For users in the documentation group, the url is the following (a(a username/password shall be required): http://example.com/svn/doc References: http://svnbook.red-bean.com Done by: Ali Al-Shemery