SlideShare a Scribd company logo
Build a Versioning File System
using WebDAV and Subversion

                  BCN Sudoers
                  javier@rodriguez.org.mx
                                20120103
                   http://slideshare.net/codehead
WebDAV
●   RFC4918: HTTP Extensions for Web Distributed
    Authoring and Versioning (WebDAV)
●   http://www.webdav.org/
WEBDAV METHODS
         WebDAV Methods
●   PROPFIND
●   PROPPATCH
●   MKCOL
●   COPY
●   MOVE
●   LOCK
●   UNLOCK
●
              the B
                   '
        WHATS Windows IG DE
                            AL
    May use HTTP or HTTPS as transport layer
                                               ?
    ●   Use existing infrastructure
●   Binary transparent
●   Can be used as a remote filesystem
Apache httpd
Web Browser   HTTP

              filesystem
Apache httpd
WebDAV Client   WebDAV


                 HTTP

                 filesystem
Windows ENTS
                   AV CLI
        WEBD

●   Mount as a filesystem


                            ●   FTP-like interface
Windows S
                   WINDOW
●   Native “Web Folders”   ●   MS Office
    (Mostly broken)        ●   Bit Kinex
●   Xythos Drive           ●   CyberDuck
                           ●   WebDrive $
                           ●   GoodSync $
MAC
                    Mac
●   Native Finder    ●   iWork
●   MacFUSE          ●   CyberDuck
Linux
              LINUX
●   davfs2         ●   KDE konqueror
●   fusedav        ●   KDE dolphin
                   ●   Gnome Nautilus
                   ●   cadaver
Re  c ipe 1
      Subversion



WebDAV server using Apache2
In Dependencies s
               gredient
●   Mandatory
    ●   apache2-mpm-prefork
●   Optional
    ●   libapache2-mod-auth-*
Hello, mod-ssl
<VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

       ErrorLog ${APACHE_LOG_DIR}/error.log
       LogLevel warn
       CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

       SSLEngine on
       SSLCertificateFile    /etc/ssl/certs/webdav.pem
       SSLCertificateKeyFile /etc/ssl/private/webdav.key

        BrowserMatch "MSIE [2-6]" 
                nokeepalive ssl-unclean-shutdown 
                downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
Enable webd
                                 av
# a2enmod ssl dav_svn dav_fs
# mkdir /var/lib/webdav
# chown -R www-data.www-data /var/lib/webdav


       Alias /webdav/ /var/lib/webdav/
       <Location /webdav>
               DAV On
               AuthBasicProvider file
               AuthType Basic
               AuthUserFile htpasswd
               AuthName "WebDAV"
               require valid-user
               Options +Indexes
               DirectoryIndex
       </Location>
Enable webd
                                 av
# a2enmod ssl dav_svn dav_fs
# mkdir /var/lib/webdav
# chown -R www-data.www-data /var/lib/webdav


       Alias /webdav/ /var/lib/webdav/
       <Location /webdav>                      Specify a real path
               DAV On
               AuthBasicProvider file
               AuthType Basic
               AuthUserFile htpasswd
               AuthName "WebDAV"
               require valid-user
               Options +Indexes
               DirectoryIndex
       </Location>
Enable webd
                                 av
# a2enmod ssl dav_svn dav_fs
# mkdir /var/lib/webdav
# chown -R www-data.www-data /var/lib/webdav


       Alias /webdav/ /var/lib/webdav/
       <Location /webdav>
               DAV On
               AuthBasicProvider file    Turn DAV on
               AuthType Basic
               AuthUserFile htpasswd
               AuthName "WebDAV"
               require valid-user
               Options +Indexes
               DirectoryIndex
       </Location>
Enable webd
                                 av
# a2enmod ssl dav_svn dav_fs
# mkdir /var/lib/webdav
# chown -R www-data.www-data /var/lib/webdav


       Alias /webdav/ /var/lib/webdav/
       <Location /webdav>
               DAV On
               AuthBasicProvider file
               AuthType Basic                  Season to taste
               AuthUserFile htpasswd
               AuthName "WebDAV"
               require valid-user
               Options +Indexes
               DirectoryIndex
       </Location>
TEST webdav
TEST webdav




                                                       Apache httpd
   Web Browser                           HTTP

                                          filesystem




# curl --insecure --user testuser https://sandbox.ascii164.com/webdav/
TEST webdav




                                                         Apache httpd
    WebDAV Client                        WebDAV


                                           HTTP

                                            filesystem



#   mkdir /mnt/dav
#   mount -t davfs https://sandbox.ascii164.com/webdav/ /mnt/dav
#   mount
#   ls /mnt/dav
Subversionn
                  v ersio
           sub
●   Delta-V WebDAV Versioning Extension
    (RFC3253)
●   CollabNet → Apache Software Foundation
●   http://subversion.apache.org/
RECIPE
  Subversion
          2


svn server using Apache2
Dependenciests
                       re dien
                Ing
●   Mandatory
    ●   apache2-mpm-prefork
    ●   libapache2-svn
    ●   subversion
●   Optional
    ●   libapache2-mod-dnssd
    ●   libapache2-mod-auth-*
Enable SUBV
                            ERSION
# mkdir /var/lib/svn
# svnadmin create /var/lib/svn/repo
# chown -R www-data.www-data /var/lib/svn

       <Location /svn>
               DAV svn
               SVNParentPath /var/lib/svn
               AuthBasicProvider file
               AuthType Basic
               AuthUserFile htpasswd
               AuthName "Subversion"
               require valid-user
               Options +Indexes
               DirectoryIndex
       </Location>
Enable SUBV
                            ERSION
# mkdir /var/lib/svn
# svnadmin create /var/lib/svn/repo
# chown -R www-data.www-data /var/lib/svn

       <Location /svn>
               DAV svn             Virtual Path
               SVNParentPath /var/lib/svn
               AuthBasicProvider file
               AuthType Basic
               AuthUserFile htpasswd
               AuthName "Subversion"
               require valid-user
               Options +Indexes
               DirectoryIndex
       </Location>
Enable SUBV
                            ERSION
# mkdir /var/lib/svn
# svnadmin create /var/lib/svn/repo
# chown -R www-data.www-data /var/lib/svn

       <Location /svn>
               DAV svn
               SVNParentPath /var/lib/svnFile System
                                  svn DAV
               AuthBasicProvider file
               AuthType Basic
               AuthUserFile htpasswd
               AuthName "Subversion"
               require valid-user
               Options +Indexes
               DirectoryIndex
       </Location>
Enable SUBV
                            ERSION
# mkdir /var/lib/svn
# svnadmin create /var/lib/svn/repo
# chown -R www-data.www-data /var/lib/svn

       <Location /svn>
               DAV svn
               SVNParentPath /var/lib/svn       Repo Root
               AuthBasicProvider file        (Use SVNPath
               AuthType Basic               for a single repo)
               AuthUserFile htpasswd
               AuthName "Subversion"
               require valid-user
               Options +Indexes
               DirectoryIndex
       </Location>
TES T SUBVERSION
TES T SUBVERSION


      SVN Client                          Delta-V




                                                         Apache httpd
                                         WebDAV


                                           HTTP


                                              libsvn


                                            filesystem


# svn mkdir https://sandbox.ascii164.com/svn/repo/trunk/ 
    https://sandbox.ascii164.com/svn/repo/tags/ 
    https://sandbox.ascii164.com/svn/repo/branches/
# svn ls https://sandbox.ascii164.com/svn/repo/
TES T SUBVERSION


                                          Delta-V




                                                         Apache httpd
                                         WebDAV


     Web Browser                           HTTP


                                              libsvn


                                            filesystem



# curl --insecure --user testuser https://sandbox.ascii164.com/svn/repo/
v ersi oning

      vs

   backup
WHEN
should I create
  a new version   ?
Subversion
      ipe 3
 Rec


autoversioning filesystem
Enable auto
                    versioning
# mkdir /var/lib/svn
# svnadmin create /var/lib/svn/documents
# chown -R www-data.www-data /var/lib/svn

       <Location /documents>
               DAV svn
               SVNPath /var/lib/svn/documents
               SVNAutoVersioning on
               ModMimeUsePathInfo on
               AuthBasicProvider file
               AuthType Basic
               AuthUserFile htpasswd
               AuthName "Documents"
               require valid-user
               Options +Indexes
               DirectoryIndex
       </Location>
EST autov ersioning
          T


                                        Delta-V




                                                       Apache httpd
  WebDAV Client                        WebDAV


                                         HTTP


                                            libsvn


                                          filesystem
# mkdir /mnt/docs
# mount -t davfs https://sandbox.ascii164.com/documents/ 
    /mnt/docs
# mount
# ls /mnt/docs
EST autov ersioning
            T


      SVN Client                          Delta-V




                                                         Apache httpd
                                         WebDAV


                                           HTTP


                                              libsvn


                                            filesystem


# svn ls https://sandbox.ascii164.com/documents/
MORE RESOUR
            Further ResourcesS
                          CE
●   http://svnbook.red-bean.com/
CO ME
                       W EL
             STI ONS
      Q UE
ALL
BCN S udoers
javier@rodriguez.org.mx
             @codehead
SVN Client   Delta-V




                           Apache httpd
             WebDAV


              HTTP


                libsvn


              filesystem
<Location /svn>

       DAV svn

       SVNParentPath /var/lib/svn

       AuthBasicProvider ldap

       AuthzLDAPAuthoritative off

       AuthType Basic

       AuthName "Document Repository"

       AuthLDAPURL ldap://localhost/ou=Users,dc=company,dc=com?uid?sub?

       require valid-user

</Location>
SVN Client     Delta-V




                              Apache httpd
WebDAV Client   WebDAV


Web Browser      HTTP


                   libsvn


                 filesystem
svn ls https://sandbox.company.com/svn/repo/
SVN Client     Delta-V


WebDAV Client   WebDAV        Apache

Web Browser      HTTP


                   libsvn


                 filesystem
curl https://sandbox.company.com/svn/repo/
ersioning
Autov
SVN Client     Delta-V


WebDAV Client   WebDAV        Apache

Web Browser      HTTP


                   libsvn


                 filesystem
<Location /documents>

       DAV svn

       SVNPath /var/lib/svn/docrepo

       SVNAutoVersioning on

       ModMimeUsePathInfo on

       AuthBasicProvider ldap

       AuthzLDAPAuthoritative off

       AuthType Basic

       AuthName "Document Repository"

       AuthLDAPURL ldap://localhost/ou=Users,dc=company,dc=com?uid?sub?

       require valid-user

</Location>
Client Software

More Related Content

KEY
Apache Cookbook - TekX Chicago 2010
KEY
Apache Wizardry - Ohio Linux 2011
PPTX
Running Docker in Development & Production (DevSum 2015)
PDF
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
PPTX
Kubernetes #4 volume &amp; stateful set
PPTX
Running Docker in Development & Production (#ndcoslo 2015)
PDF
Varnish http accelerator
PDF
Resource registries plone conf 2014
Apache Cookbook - TekX Chicago 2010
Apache Wizardry - Ohio Linux 2011
Running Docker in Development & Production (DevSum 2015)
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Kubernetes #4 volume &amp; stateful set
Running Docker in Development & Production (#ndcoslo 2015)
Varnish http accelerator
Resource registries plone conf 2014

What's hot (20)

PPT
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Services
PDF
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
PDF
Scalable Architecture 101
PDF
Varnish - PLNOG 4
PDF
Hadoop meet Rex(How to construct hadoop cluster with rex)
PDF
Automating complex infrastructures with Puppet
ODP
Apache httpd 2.4: The Cloud Killer App
PDF
Lesson 9. The Apache Web Server
PPTX
Lessons from running potentially malicious code inside Docker containers
PDF
Challenges of container configuration
PDF
실시간 서비스 플랫폼 개발 사례
PDF
Docker
PPTX
How to add a new hypervisor to CloudStack - Lessons learned from Hyper-V effort
PPTX
Usenix LISA 2012 - Choosing a Proxy
PDF
Apache Traffic Server & Lua
PDF
httpd — Apache Web Server
PPTX
Installation Openstack Swift
PPTX
Docker in production
PDF
Automating Complex Setups with Puppet
PDF
qewd-ripple: The Ripple OSI Middle Tier
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Services
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
Scalable Architecture 101
Varnish - PLNOG 4
Hadoop meet Rex(How to construct hadoop cluster with rex)
Automating complex infrastructures with Puppet
Apache httpd 2.4: The Cloud Killer App
Lesson 9. The Apache Web Server
Lessons from running potentially malicious code inside Docker containers
Challenges of container configuration
실시간 서비스 플랫폼 개발 사례
Docker
How to add a new hypervisor to CloudStack - Lessons learned from Hyper-V effort
Usenix LISA 2012 - Choosing a Proxy
Apache Traffic Server & Lua
httpd — Apache Web Server
Installation Openstack Swift
Docker in production
Automating Complex Setups with Puppet
qewd-ripple: The Ripple OSI Middle Tier
Ad

Similar to Build an autoversioning filesystem with Apache2 (20)

PPT
Subversion @ JUG Milano 11 dic 2009
PDF
How Reconnix Is Using Docker
PDF
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...
DOC
Installation of Subversion on Ubuntu,...
PPTX
WordPress Development Environments
PDF
Linux advanced concepts - Part 2
PPTX
Control your deployments with Capistrano
PDF
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
PDF
UEMB200: Next Generation of Endpoint Management Architecture and Discovery Se...
DOC
Ubuntu安装SVN总结
KEY
Using and scaling Rack and Rack-based middleware
PPTX
Subversion on-the-fly replication
PDF
PowerPoint Presentation
PDF
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
PPT
Ch 22: Web Hosting and Internet Servers
PDF
Chap 19 web
PDF
Killer Docker Workflows for Development
PPT
Linux System Administration - Web Server and squid setup
KEY
Write php deploy everywhere
PDF
Postgres the hardway
Subversion @ JUG Milano 11 dic 2009
How Reconnix Is Using Docker
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...
Installation of Subversion on Ubuntu,...
WordPress Development Environments
Linux advanced concepts - Part 2
Control your deployments with Capistrano
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
UEMB200: Next Generation of Endpoint Management Architecture and Discovery Se...
Ubuntu安装SVN总结
Using and scaling Rack and Rack-based middleware
Subversion on-the-fly replication
PowerPoint Presentation
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Ch 22: Web Hosting and Internet Servers
Chap 19 web
Killer Docker Workflows for Development
Linux System Administration - Web Server and squid setup
Write php deploy everywhere
Postgres the hardway
Ad

More from Javier Arturo Rodríguez (9)

PDF
Introduction to ansible
PDF
Minimizing cognitive load
 in Perl source code parsing (a.k.a. Pretty program...
PDF
WordPress Performance Tuning
PDF
WordPress for SysAdmins
PDF
Easy native wrappers with SWIG
PDF
Open Data: a view from the trenches
PDF
Barcelona.pm Curs1211 sess01
PDF
Periodismo de Datos II: Construyendo y explorando conjuntos de datos con las ...
PDF
DatosEnCrudo.org
Introduction to ansible
Minimizing cognitive load
 in Perl source code parsing (a.k.a. Pretty program...
WordPress Performance Tuning
WordPress for SysAdmins
Easy native wrappers with SWIG
Open Data: a view from the trenches
Barcelona.pm Curs1211 sess01
Periodismo de Datos II: Construyendo y explorando conjuntos de datos con las ...
DatosEnCrudo.org

Recently uploaded (20)

PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation theory and applications.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPT
Teaching material agriculture food technology
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Electronic commerce courselecture one. Pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
Network Security Unit 5.pdf for BCA BBA.
20250228 LYD VKU AI Blended-Learning.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation_ Review paper, used for researhc scholars
The Rise and Fall of 3GPP – Time for a Sabbatical?
Per capita expenditure prediction using model stacking based on satellite ima...
SOPHOS-XG Firewall Administrator PPT.pptx
A comparative analysis of optical character recognition models for extracting...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation theory and applications.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Empathic Computing: Creating Shared Understanding
Spectral efficient network and resource selection model in 5G networks
MIND Revenue Release Quarter 2 2025 Press Release
“AI and Expert System Decision Support & Business Intelligence Systems”
Teaching material agriculture food technology
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Electronic commerce courselecture one. Pdf
Programs and apps: productivity, graphics, security and other tools

Build an autoversioning filesystem with Apache2

  • 1. Build a Versioning File System using WebDAV and Subversion BCN Sudoers [email protected] 20120103 http://slideshare.net/codehead
  • 2. WebDAV ● RFC4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) ● http://www.webdav.org/
  • 3. WEBDAV METHODS WebDAV Methods ● PROPFIND ● PROPPATCH ● MKCOL ● COPY ● MOVE ● LOCK ● UNLOCK
  • 4. the B ' WHATS Windows IG DE AL May use HTTP or HTTPS as transport layer ? ● Use existing infrastructure ● Binary transparent ● Can be used as a remote filesystem
  • 5. Apache httpd Web Browser HTTP filesystem
  • 6. Apache httpd WebDAV Client WebDAV HTTP filesystem
  • 7. Windows ENTS AV CLI WEBD ● Mount as a filesystem ● FTP-like interface
  • 8. Windows S WINDOW ● Native “Web Folders” ● MS Office (Mostly broken) ● Bit Kinex ● Xythos Drive ● CyberDuck ● WebDrive $ ● GoodSync $
  • 9. MAC Mac ● Native Finder ● iWork ● MacFUSE ● CyberDuck
  • 10. Linux LINUX ● davfs2 ● KDE konqueror ● fusedav ● KDE dolphin ● Gnome Nautilus ● cadaver
  • 11. Re c ipe 1 Subversion WebDAV server using Apache2
  • 12. In Dependencies s gredient ● Mandatory ● apache2-mpm-prefork ● Optional ● libapache2-mod-auth-*
  • 13. Hello, mod-ssl <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/webdav.pem SSLCertificateKeyFile /etc/ssl/private/webdav.key BrowserMatch "MSIE [2-6]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost>
  • 14. Enable webd av # a2enmod ssl dav_svn dav_fs # mkdir /var/lib/webdav # chown -R www-data.www-data /var/lib/webdav Alias /webdav/ /var/lib/webdav/ <Location /webdav> DAV On AuthBasicProvider file AuthType Basic AuthUserFile htpasswd AuthName "WebDAV" require valid-user Options +Indexes DirectoryIndex </Location>
  • 15. Enable webd av # a2enmod ssl dav_svn dav_fs # mkdir /var/lib/webdav # chown -R www-data.www-data /var/lib/webdav Alias /webdav/ /var/lib/webdav/ <Location /webdav> Specify a real path DAV On AuthBasicProvider file AuthType Basic AuthUserFile htpasswd AuthName "WebDAV" require valid-user Options +Indexes DirectoryIndex </Location>
  • 16. Enable webd av # a2enmod ssl dav_svn dav_fs # mkdir /var/lib/webdav # chown -R www-data.www-data /var/lib/webdav Alias /webdav/ /var/lib/webdav/ <Location /webdav> DAV On AuthBasicProvider file Turn DAV on AuthType Basic AuthUserFile htpasswd AuthName "WebDAV" require valid-user Options +Indexes DirectoryIndex </Location>
  • 17. Enable webd av # a2enmod ssl dav_svn dav_fs # mkdir /var/lib/webdav # chown -R www-data.www-data /var/lib/webdav Alias /webdav/ /var/lib/webdav/ <Location /webdav> DAV On AuthBasicProvider file AuthType Basic Season to taste AuthUserFile htpasswd AuthName "WebDAV" require valid-user Options +Indexes DirectoryIndex </Location>
  • 19. TEST webdav Apache httpd Web Browser HTTP filesystem # curl --insecure --user testuser https://sandbox.ascii164.com/webdav/
  • 20. TEST webdav Apache httpd WebDAV Client WebDAV HTTP filesystem # mkdir /mnt/dav # mount -t davfs https://sandbox.ascii164.com/webdav/ /mnt/dav # mount # ls /mnt/dav
  • 21. Subversionn v ersio sub ● Delta-V WebDAV Versioning Extension (RFC3253) ● CollabNet → Apache Software Foundation ● http://subversion.apache.org/
  • 22. RECIPE Subversion 2 svn server using Apache2
  • 23. Dependenciests re dien Ing ● Mandatory ● apache2-mpm-prefork ● libapache2-svn ● subversion ● Optional ● libapache2-mod-dnssd ● libapache2-mod-auth-*
  • 24. Enable SUBV ERSION # mkdir /var/lib/svn # svnadmin create /var/lib/svn/repo # chown -R www-data.www-data /var/lib/svn <Location /svn> DAV svn SVNParentPath /var/lib/svn AuthBasicProvider file AuthType Basic AuthUserFile htpasswd AuthName "Subversion" require valid-user Options +Indexes DirectoryIndex </Location>
  • 25. Enable SUBV ERSION # mkdir /var/lib/svn # svnadmin create /var/lib/svn/repo # chown -R www-data.www-data /var/lib/svn <Location /svn> DAV svn Virtual Path SVNParentPath /var/lib/svn AuthBasicProvider file AuthType Basic AuthUserFile htpasswd AuthName "Subversion" require valid-user Options +Indexes DirectoryIndex </Location>
  • 26. Enable SUBV ERSION # mkdir /var/lib/svn # svnadmin create /var/lib/svn/repo # chown -R www-data.www-data /var/lib/svn <Location /svn> DAV svn SVNParentPath /var/lib/svnFile System svn DAV AuthBasicProvider file AuthType Basic AuthUserFile htpasswd AuthName "Subversion" require valid-user Options +Indexes DirectoryIndex </Location>
  • 27. Enable SUBV ERSION # mkdir /var/lib/svn # svnadmin create /var/lib/svn/repo # chown -R www-data.www-data /var/lib/svn <Location /svn> DAV svn SVNParentPath /var/lib/svn Repo Root AuthBasicProvider file (Use SVNPath AuthType Basic for a single repo) AuthUserFile htpasswd AuthName "Subversion" require valid-user Options +Indexes DirectoryIndex </Location>
  • 29. TES T SUBVERSION SVN Client Delta-V Apache httpd WebDAV HTTP libsvn filesystem # svn mkdir https://sandbox.ascii164.com/svn/repo/trunk/ https://sandbox.ascii164.com/svn/repo/tags/ https://sandbox.ascii164.com/svn/repo/branches/ # svn ls https://sandbox.ascii164.com/svn/repo/
  • 30. TES T SUBVERSION Delta-V Apache httpd WebDAV Web Browser HTTP libsvn filesystem # curl --insecure --user testuser https://sandbox.ascii164.com/svn/repo/
  • 31. v ersi oning vs backup
  • 32. WHEN should I create a new version ?
  • 33. Subversion ipe 3 Rec autoversioning filesystem
  • 34. Enable auto versioning # mkdir /var/lib/svn # svnadmin create /var/lib/svn/documents # chown -R www-data.www-data /var/lib/svn <Location /documents> DAV svn SVNPath /var/lib/svn/documents SVNAutoVersioning on ModMimeUsePathInfo on AuthBasicProvider file AuthType Basic AuthUserFile htpasswd AuthName "Documents" require valid-user Options +Indexes DirectoryIndex </Location>
  • 35. EST autov ersioning T Delta-V Apache httpd WebDAV Client WebDAV HTTP libsvn filesystem # mkdir /mnt/docs # mount -t davfs https://sandbox.ascii164.com/documents/ /mnt/docs # mount # ls /mnt/docs
  • 36. EST autov ersioning T SVN Client Delta-V Apache httpd WebDAV HTTP libsvn filesystem # svn ls https://sandbox.ascii164.com/documents/
  • 37. MORE RESOUR Further ResourcesS CE ● http://svnbook.red-bean.com/
  • 38. CO ME W EL STI ONS Q UE ALL
  • 40. SVN Client Delta-V Apache httpd WebDAV HTTP libsvn filesystem
  • 41. <Location /svn> DAV svn SVNParentPath /var/lib/svn AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthType Basic AuthName "Document Repository" AuthLDAPURL ldap://localhost/ou=Users,dc=company,dc=com?uid?sub? require valid-user </Location>
  • 42. SVN Client Delta-V Apache httpd WebDAV Client WebDAV Web Browser HTTP libsvn filesystem
  • 44. SVN Client Delta-V WebDAV Client WebDAV Apache Web Browser HTTP libsvn filesystem
  • 47. SVN Client Delta-V WebDAV Client WebDAV Apache Web Browser HTTP libsvn filesystem
  • 48. <Location /documents> DAV svn SVNPath /var/lib/svn/docrepo SVNAutoVersioning on ModMimeUsePathInfo on AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthType Basic AuthName "Document Repository" AuthLDAPURL ldap://localhost/ou=Users,dc=company,dc=com?uid?sub? require valid-user </Location>