Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > e8fe8188cee5592550f08a19b470186d > files > 214

subversion-doc-1.9.7-1.mga6.x86_64.rpm

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Overview</title>
    <link rel="stylesheet" type="text/css" href="styles.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.76.1" />
    <style type="text/css">
body { background-image: url('images/draft.png');
       background-repeat: no-repeat;
       background-position: top left;
       /* The following properties make the watermark "fixed" on the page. */
       /* I think that's just a bit too distracting for the reader... */
       /* background-attachment: fixed; */
       /* background-position: center center; */
     }</style>
    <link rel="home" href="index.html" title="Version Control with Subversion [DRAFT]" />
    <link rel="up" href="svn.serverconfig.html" title="Chapter 6. Server Configuration" />
    <link rel="prev" href="svn.serverconfig.html" title="Chapter 6. Server Configuration" />
    <link rel="next" href="svn.serverconfig.choosing.html" title="Choosing a Server Configuration" />
  </head>
  <body>
    <div xmlns="" id="vcws-version-notice">
      <p>This text is a work in progress—highly subject to
       change—and may not accurately describe any released
       version of the Apache™ Subversion® software.
       Bookmarking or otherwise referring others to this page is
       probably not such a smart idea.  Please visit
       <a href="http://www.svnbook.com/">http://www.svnbook.com/</a>
       for stable versions of this book.</p>
    </div>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Overview</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="svn.serverconfig.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 6. Server Configuration</th>
          <td width="20%" align="right"> <a accesskey="n" href="svn.serverconfig.choosing.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" title="Overview">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="svn.serverconfig.overview"></a>Overview</h2>
          </div>
        </div>
      </div>
      <p>
      <a id="idp15805936" class="indexterm"></a>Subversion was designed with an abstract repository
      access layer.  This means that a repository can be
      programmatically accessed by any sort of server process, and the
      client <span class="quote">“<span class="quote">repository access</span>”</span> API allows programmers
      to write plug-ins that speak relevant network protocols.  In
      theory, Subversion can use an infinite number of network
      implementations.  In practice, there are only two Subversion
      servers in widespread use today.</p>
      <p>
      <a id="idp15809104" class="indexterm"></a>
      <a id="idp15810176" class="indexterm"></a>Apache HTTP Server (also known
      as <span class="command"><strong>httpd</strong></span>) is an extremely popular web server;
      using the <span class="command"><strong>mod_dav_svn</strong></span> module, Apache can
      access a repository and make it available to clients via the
      WebDAV/DeltaV protocol, which is an extension of HTTP.  Because
      Apache is an extremely extensible server, it provides a number
      of features <span class="quote">“<span class="quote">for free,</span>”</span> such as encrypted SSL
      communication, logging, integration with a number of third-party
      authentication systems, and limited built-in web browsing of
      repositories.</p>
      <p>
      <a id="idp15814416" class="indexterm"></a>In the other corner is <span class="command"><strong>svnserve</strong></span>:
      a small, lightweight server program that speaks a custom
      protocol with clients.  Because its protocol is explicitly
      designed for Subversion and is stateful (unlike HTTP), it
      provides significantly faster network operations—but at
      the cost of some features as well.  While it can use SASL to
      provide a variety of authentication and encryption options, it
      has no logging or built-in web browsing.  It is, however,
      extremely easy to set up and is often the best option for small
      teams just starting out with Subversion.</p>
      <p>The network protocol which <span class="command"><strong>svnserve</strong></span>
      speaks may also be tunneled over an SSH connection.  This
      deployment option for <span class="command"><strong>svnserve</strong></span> differs quite
      a bit in features from a traditional <span class="command"><strong>svnserve</strong></span>
      deployment.  SSH is used to encrypt all communication.  SSH is
      also used exclusively to authenticate, so real system accounts
      are required on the server host (unlike
      vanilla <span class="command"><strong>svnserve</strong></span>, which has its own private
      user accounts).  Finally, because this setup requires that each
      user spawn a private, temporary <span class="command"><strong>svnserve</strong></span>
      process, it's equivalent (from a permissions point of view) to
      allowing a group of local users to all access the repository
      via <code class="literal">file://</code> URLs.  Path-based access control
      has no meaning, since each user is accessing the repository
      database files directly.</p>
      <p><a class="xref" href="svn.serverconfig.overview.html#svn.serverconfig.overview.tbl-1" title="Table 6.1. Comparison of Subversion server options">Table 6.1, “Comparison of Subversion server options”</a> provides a
      quick summary of the three typical server deployments.</p>
      <div class="table">
        <a id="svn.serverconfig.overview.tbl-1"></a>
        <p class="title">
          <strong>Table 6.1. Comparison of Subversion server options</strong>
        </p>
        <div class="table-contents">
          <table summary="Comparison of Subversion server options" border="1">
            <colgroup>
              <col />
              <col />
              <col />
              <col />
            </colgroup>
            <thead>
              <tr>
                <th>Feature</th>
                <th>Apache + mod_dav_svn</th>
                <th>svnserve</th>
                <th>svnserve over SSH</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td>Authentication options</td>
                <td>HTTP Basic or Digest auth, X.509 certificates, LDAP,
              NTLM, or any other mechanism available to Apache httpd</td>
                <td>CRAM-MD5 by default;  LDAP, NTLM, or any other mechanism
              available to SASL</td>
                <td>SSH</td>
              </tr>
              <tr>
                <td>User account options</td>
                <td>Private <span class="quote">“<span class="quote">users</span>”</span> file, or other mechanisms
            available to Apache httpd (LDAP, SQL, etc.)</td>
                <td>Private <span class="quote">“<span class="quote">users</span>”</span> file, or other
              mechanisms available to SASL (LDAP, SQL, etc.)</td>
                <td>System accounts</td>
              </tr>
              <tr>
                <td>Authorization options</td>
                <td>Read/write access can be granted over the whole
              repository, or specified per path</td>
                <td>Read/write access can be granted over the whole
              repository, or specified per path</td>
                <td>Read/write access only grantable over the whole
              repository</td>
              </tr>
              <tr>
                <td>Encryption</td>
                <td>Available via optional SSL (https)</td>
                <td>Available via optional SASL features</td>
                <td>Inherent in SSH connection</td>
              </tr>
              <tr>
                <td>Logging</td>
                <td>High-level operational logging of Subversion
              operations plus detailed logging at the
              per-HTTP-request level</td>
                <td>High-level operational logging only</td>
                <td>High-level operational logging only</td>
              </tr>
              <tr>
                <td>Interoperability</td>
                <td>Accessible by other WebDAV clients</td>
                <td>Talks only to svn clients</td>
                <td>Talks only to svn clients</td>
              </tr>
              <tr>
                <td>Web viewing</td>
                <td>Limited built-in support, or via third-party tools
              such as ViewVC</td>
                <td>Only via third-party tools such as ViewVC</td>
                <td>Only via third-party tools such as ViewVC</td>
              </tr>
              <tr>
                <td>Master-slave server replication</td>
                <td>Transparent write-proxying available from slave to
              master</td>
                <td>Can only create read-only slave servers</td>
                <td>Can only create read-only slave servers</td>
              </tr>
              <tr>
                <td>Speed</td>
                <td>Somewhat slower</td>
                <td>Somewhat faster</td>
                <td>Somewhat faster</td>
              </tr>
              <tr>
                <td>Initial setup</td>
                <td>Somewhat complex</td>
                <td>Extremely simple</td>
                <td>Moderately simple</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <br class="table-break" />
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="svn.serverconfig.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="svn.serverconfig.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="svn.serverconfig.choosing.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Chapter 6. Server Configuration </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Choosing a Server Configuration</td>
        </tr>
      </table>
    </div>
    <div xmlns="" id="vcws-footer">
      <hr />
      <img src="images/cc-by.png" style="float: right;" />
      <p>You are reading <em>Version Control with Subversion</em> (for
       Subversion 1.8), by Ben Collins-Sussman, Brian W. Fitzpatrick,
       and C. Michael Pilato.</p>
      <p>This work is licensed under
       the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.</p>
      <p>To submit comments, corrections, or other contributions to the
       text, please visit <a href="http://www.svnbook.com/">http://www.svnbook.com/</a>.</p>
    </div>
  </body>
</html>