Subversion, WebDAV, and Apache HTTP Server 2.0



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

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

MapGuide Open Source Repository Management Back up, restore, and recover your resource repository.

Modulo II Software Configuration Management - SCM

Version Control with Subversion

Subversion. Nadir SOUALEM. Linux Users subversion client svn or higher. Windows users subversion client Tortoise 1.6.

Managing Software Projects Like a Boss with Subversion and Trac

Managing Source Code With Subversion

BlueJ Teamwork Tutorial

SVN Authentication and Authorization

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

DeltaV: Adding Versioning to the Web

How To Make A Collaborative Development Environment (Cde) On A Web Browser

LATEX Document Management with Subversion

Version control with Subversion

Pragmatic Version Control

Version Control Tools

Introduction to Subversion

Apache based WebDAV Server with LDAP and SSL

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.

BlueJ Teamwork Repository Configuration

mod_tcl TCL inside the Apache web server

Kerberos and Single Sign On with HTTP

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

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

What should a hacker know about WebDav? Vulnerabilities in various WebDav implementations

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

What's new in httpd 2.2?

Talend Enterprise Data Quality. Installation Guide. 5.0_a

EAE-MS SCCAPI based Version Control System

Using Subversion in Computer Science

CAD WEBDAV ADAPTOR: PREMISE FOR A LIGHT PLM SOLUTION

Source Control Systems

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF

Kerberos and Single Sign-On with HTTP

Version Control with Subversion

Version Control with Subversion and Xcode

Distributed Version Control with Mercurial and git

Painless Web Proxying with Apache mod_proxy

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

Using RDF Metadata To Enable Access Control on the Social Semantic Web

Secure Linux Administration Conference Bernd Strößenreuther

Version Control with Subversion

TortoiseSVN A Subversion client for Windows Version Stefan Küng Lübbe Onken Simon Large

Version Control with Subversion

Spectrum Technology Platform. Version 9.0. Spectrum Spatial Administration Guide

Requirements for Standard Compliant Electrical Test Authoring in Manufacturing Applications

Beyond The Web Drupal Meets The Desktop (And Mobile) Justin Miller Code Sorcery Workshop, LLC

How To Secure Your Computer With Libreware Libreroview (Windows) And Libreros (Windows 2) (Windows 3.5) (For Windows) (Powerpoint) (Networking)

StreamServe Job Gateway

PxPlus Version Control System Using TortoiseSVN. Jane Raymond

Exchange Mailbox Protection Whitepaper

Release Management Within Open Source Projects

Expert PHP 5 Tools. Proven enterprise development tools and best practices for designing, coding, testing, and deploying PHP applications.

Syncro SVN Client 4.2 User Manual. SyncRO Soft Ltd.

Creating Home Directories for Windows and Macintosh Computers

How To Backup In Cisco Uk Central And Cisco Cusd (Cisco) Cusm (Custodian) (Cusd) (Uk) (Usd).Com) (Ucs) (Cyse

ANECDOTAL DEVELOPMENT & DEPLOYMENT. A Case-Study in PHP Project Workflow Lone Star PHP - June 2011 Brian Blood

Storage Made Easy Enterprise File Share and Sync (EFSS) Cloud Control Gateway Architecture

Apache & Virtual Hosts & mod_rewrite

ALERT installation setup

Version Control. Luka Milovanov

SecuritySpy Setting Up SecuritySpy Over SSL

TortoiseSVN A Subversion client for Windows Version Stefan Küng Lübbe Onken Simon Large

Acronis Backup & Recovery 10 Server for Linux. Installation Guide

Professional. SlickEdif. John Hurst IC..T...L. i 1 8 О 7» \ WILEY \ Wiley Publishing, Inc.

Version Control with Subversion

An Introduction to Mercurial Version Control Software

Version Control with Subversion

Version Control with Git. Kate Hedstrom ARSC, UAF

ZABBIX. An Enterprise-Class Open Source Distributed Monitoring Solution. Takanori Suzuki MIRACLE LINUX CORPORATION October 22, 2009

Active Directory Integration. Documentation. v1.02. making your facilities work for you!

Administering the Web Server (IIS) Role of Windows Server

Version Control with Git. Dylan Nugent

Administering the Web Server (IIS) Role of Windows Server 10972B; 5 Days

Introduction to the Git Version Control System

Revision control systems (RCS) and

Workflow Templates Library

Detailed Features. Detailed Features. EISOO AnyBackup Family 1 / 19

Redmine Installation on Debian. v1.1

Continuous Integration. CSC 440: Software Engineering Slide #1

Real Vision Software, Inc.

Version Control. Version Control

Manual. CollabNet Subversion Connector to HP Quality Center. Version 1.2

Casper Suite. Security Overview

Interwise Connect. Working with Reverse Proxy Version 7.x

Using SVN to Manage Source RTL

Access Your Cisco Smart Storage Remotely Via WebDAV

Transcription:

Subversion, WebDAV, and Apache HTTP Server 2.0 Justin R. Erenkrantz University of California, Irvine justin@erenkrantz.com Slides: http://www.erenkrantz.com/oscon/

What is Subversion? Did you miss Subversion: Version Control Rethought? http://subversion.tigris.org/ A compelling replacement to CVS 0.25.0 was released this morning Expect a release every two-three weeks

What is Subversion? Currently alpha Extremely conservative approach Subversion is self-hosting But, don t take our word for it http://subversion.tigris.org/svn-repositories.html Expect 1.0 soon-ish - beta in 2-3 months

What is WebDAV? A mechanism for distributed authoring Specified in RFC 2518 A lot of software now supports WebDAV Forgot about versioning in RFC 2518 DeltaV - RFC 3253 Subversion partially implements DeltaV

Overview mod_dav_svn mod_authz_svn Autoversioning ra_svn basics svnadmin basics Bindings and Hooks

Subversion + WebDAV Why do what others have done? Portability used by using APR Subversion includes an httpd 2.x module Built on top of mod_dav Can browse repository over HTTP Need WebDAV client to make changes Simply add mod_ssl to use SSL

Subversion Remote Access Ways to talk to a repository in Subversion ra_local - Local file-based file:// ra_svn - Custom protocol svn:// or svn+ssh:// ra_dav - WebDAV-based http:// or https://

mod_dav_svn Apache module for Subversion Requires httpd-2.0 (or greater) Uses mod_dav included with 2.0 Use --with-apxs=/path/to/httpd/apxs when configuring Subversion Clients require Neon to use ra_dav client

mod_dav_svn/ra_dav Protocol Uses a subset of WebDAV/DeltaV Each file is retrieved via GET Properties retrieved via PROPFIND Transactions done via MKACTIVITY Finally MERGE back See notes/webdav-general-summary

mod_dav_svn Example # Must be after mod_dav.so if it exists as a DSO LoadModule dav_svn_module modules/mod_dav_svn.so <Location /svn/repos> DAV svn SVNPath /absolute/path/to/repository </Location> If you want authentication and a group of repositories: <Location /svn/repos> DAV svn SVNParentPath /absolute/path/to AuthType Basic AuthName Subversion repository AuthUserFile /my/svn/user/passwd/file </Location>

mod_authz_svn Path-based authorization Allow user Joe to access /joe only Allow group committers write-access Inherit permissions from parent File-based configuration Other RA layers will not use this now!

mod_authz_svn Syntax [groups] <groupname> = <user>[,<user>...]... [<path in repository>] @<group> = [rw r] <user> = [rw r] * = [rw r] * = Everyone r = GET, PROPFIND, REPORT, OPTIONS w = MKCOL, DELETE, PUT, PROPPATCH, CHECKOUT, MERGE, MKACTIVITY... COPY and MOVE require at least w on destination

mod_authz_svn Example Add to your Location block: AuthzSVNAccessFile /path/to/access/file Require valid-user /path/to/access/file contains: [groups] branchonly=john,mary,alice writers=bob,jones,scotty [/] *=r @writers=rw [/branches] @branchonly=rw

Autoversioning Not all clients will be Subversion clients Allows WebDAV-only clients to modify No need for custom clients! Generic log message used on commits <Location /svn/repos> DAV svn SVNPath /absolute/path/to/repository SVNAutoversioning on </Location>

Autoversioning Example See subversion/notes/autoversion-compatibility.txt Add to your Location block: SVNAutoversioning On Tested Clients: Nautilus 2.x Windows WebFolders Mac OS X Finder Linux davfs2 Macromedia Dreamweaver DAVExplorer

mod_dav_lock Some WebDAV clients are class 2 MacOS X s Finder Require LOCK support from repository Subversion does not have this directly Only httpd 2.1 includes mod_dav_lock Use DavGenericLockDB directive

Full configuration example <Location /svn/repos> DAV svn SVNPath /absolute/path/to/repository SVNAutoversioning on DAVGenericLockDB logs/repos-locks AuthType Basic AuthName Subversion repository AuthUserFile /my/svn/user/dir/passwd AuthzSVNAccessFile /my/svn/user/dir/access Require valid-user </Location>

ra_svn Not everyone trusts Apache! ra_svn was introduced Allows for tunneling May require local accounts svnserve daemon Anonymous/read-only access

ra_svn Tunnels % svn checkout svn+ssh://hostname/usr/local/svn/repository Opens a remote connection Executes svnserve -t on the other end Uses svn+<tunnel> Configured in ~/.subversion/config Default of svn+ssh exist

svnadmin Allows for management of repository Recover Backup/Restore Archive Only works with local file access No remote administration yet

Subversion and Berkeley DB Built on top of Berkeley DB 4.x All data is stored in Berkeley DB tables Ensures the integrity of the system (ACID) However, may require some maintaining

Recovering corrupted database You may see, Need to run recovery Chances are it is not really corrupt Run svnadmin recover /path/to/repos Ensure that there are no open processes httpd, svnserve, etc.

Berkeley DB log files Berkeley DB creates log files Allows complete playback Can grow very large Usually, not all log files are needed As of 0.25.0, svnadmin archive cleans up db_archive xargs rm also works

Subversion dump format Subversion has its own archive format Plain text format with MIME-like headers Berkeley DB is not really portable If switch endianness, need to recreate Required on repository format updates dump/load cycle

svnadmin dump svnadmin dump /path/to/repos Defaults to stdout Options -rx:y - specify ranges to dump --incremental Loading into created repository

svnadmin load svnadmin load /path/to/repos Reads from stdin Repository must already be created UUIDs For future distributed repositories Use, ignore, or create on load

svndumpfilter Ability to tweak a dump file Reads dump from stdin New file on stdout Exclude or include paths in dump Renumber missing revisions Poor man s svn obliterate

Bindings C and SWIG-centric bindings Subversion has lots of little libraries Utilize SWIG to target multiple languages Python is the main supported target Automatically in-sync with C API mailer.py and ViewCVS use SWIG binding

Hooks Each repository has a hooks directory Scripts can be placed in there Can be called at various points Server-side only commit: pre-, start-, post- hooks revprop changes: pre-, post-

ViewCVS and mailer.py Current development snapshot of ViewCVS supports Subversion Allows viewing of revisions other than the latest one mailer.py Post-commit hook that sends diff emails

Conclusion Subversion plays well with WebDAV Path-based authorization available Autoversioning allows for non-subversion clients to access the repository svnadmin is an essential tools for admins

The Final Word Upcoming O Reilly Book Subversion: The Definitive Guide See http://svnbook.red-bean.com/ Included with Subversion source, too Real-time help: irc.freenode.net #svn Mailing list: dev@subversion.tigris.org