<?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>svnserve</title> <link rel="stylesheet" type="text/css" href="styles.css" /> <meta name="generator" content="DocBook XSL Stylesheets V1.79.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.ref.svnserve.html" title="svnserve Reference—Custom Subversion Server" /> <link rel="prev" href="svn.ref.svnserve.html" title="svnserve Reference—Custom Subversion Server" /> <link rel="next" href="svn.ref.svnversion.html" title="svnversion Reference—Subversion Working Copy Version Info" /> </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">svnserve</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="svn.ref.svnserve.html">Prev</a> </td> <th width="60%" align="center">svnserve Reference—Custom Subversion Server</th> <td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnversion.html">Next</a></td> </tr> </table> <hr /> </div> <div class="refentry"> <a id="svn.ref.svnserve.re"></a> <div class="titlepage"></div> <a id="idm14924" class="indexterm"></a> <div class="refnamediv"> <h2>Name</h2> <p>svnserve — Serve Subversion repositories via Subversion's custom network protocol</p> </div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <p> <code class="literal">svnserve [-d | -i | -t | -X] OPTIONS...</code> </p> </div> <div class="refsect1"> <a id="svn.ref.svnserve.re.desc"></a> <h2>Description</h2> <p><span class="command"><strong>svnserve</strong></span> allows access to Subversion repositories using Subversion's custom network protocol.</p> <p>You can run <span class="command"><strong>svnserve</strong></span> as a standalone server process (for clients that are using the <code class="literal">svn://</code> access method); you can have a daemon such as <span class="command"><strong>inetd</strong></span> or <span class="command"><strong>xinetd</strong></span> launch it for you on demand (also for <code class="literal">svn://</code>), or you can have <span class="command"><strong>sshd</strong></span> launch it on demand for the <code class="literal">svn+ssh://</code> access method.</p> <p>Unless the <code class="option">--config-file</code> option was specified on the command line, once the client has selected a repository by transmitting its URL, <span class="command"><strong>svnserve</strong></span> reads a file named <code class="filename">conf/svnserve.conf</code> in the repository directory to determine repository-specific settings such as what authentication database to use and what authorization policies to apply. See <a class="xref" href="svn.serverconfig.svnserve.html" title="svnserve, a Custom Server">the section called “svnserve, a Custom Server”</a> for details of the <code class="filename">svnserve.conf</code> file.</p> </div> <div class="refsect1"> <a id="svn.ref.svnserve.re.options"></a> <h2>Options</h2> <p>Unlike the previous commands we've described, <span class="command"><strong>svnserve</strong></span> has no subcommands—it is controlled exclusively by options.</p> <div class="variablelist"> <dl class="variablelist"> <dt> <a id="svn.ref.svnserve.sw.cache_fulltexts"></a> <span class="term"><code class="option">--cache-fulltexts</code> <em class="replaceable"><code>ARG</code></em></span> </dt> <dd> <p>Toggles support for fulltext file content caching (in FSFS repositories only).</p> </dd> <dt> <a id="svn.ref.svnserve.sw.cache_txdeltas"></a> <span class="term"><code class="option">--cache-txdeltas</code> <em class="replaceable"><code>ARG</code></em></span> </dt> <dd> <p>Toggles support for file content delta caching (in FSFS repositories only).</p> </dd> <dt> <a id="svn.ref.svnserve.sw.compression"></a> <span class="term"><code class="option">--compression</code> <em class="replaceable"><code>LEVEL</code></em></span> </dt> <dd> <p>Specifies the level of compression used for wire transmissions as an integer beween 0 and 9, inclusive. A value of <code class="literal">9</code> offers the best compression, <code class="literal">5</code> is the default value, and <code class="literal">0</code> disables compression altogether.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.config_file"></a> <span class="term"><code class="option">--config-file</code> <em class="replaceable"><code>FILENAME</code></em></span> </dt> <dd> <p>When specified, <span class="command"><strong>svnserve</strong></span> reads <em class="replaceable"><code>FILENAME</code></em> once at program startup and caches the <span class="command"><strong>svnserve</strong></span> configuration. The password and authorization configurations referenced from filename will be loaded on each connection. <span class="command"><strong>svnserve</strong></span> will not read any per‐repository <code class="filename">conf/svnserve.conf</code> files when this option is used. See the <a class="xref" href="svn.serverconfig.svnserve.html" title="svnserve, a Custom Server">the section called “svnserve, a Custom Server”</a> for details of the file format for this option.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.daemon"></a> <span class="term"><code class="option">--daemon</code> (<code class="option">-d</code>)</span> </dt> <dd> <p>Causes <span class="command"><strong>svnserve</strong></span> to run in daemon mode. <span class="command"><strong>svnserve</strong></span> backgrounds itself and accepts and serves TCP/IP connections on the <code class="literal">svn</code> port (3690, by default).</p> </dd> <dt> <a id="svn.ref.svnserve.sw.foreground"></a> <span class="term"> <code class="option">--foreground</code> </span> </dt> <dd> <p>When used together with <code class="option">-d</code>, causes <span class="command"><strong>svnserve</strong></span> to stay in the foreground. This is mainly useful for debugging.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.inetd"></a> <span class="term"><code class="option">--inetd</code> (<code class="option">-i</code>)</span> </dt> <dd> <p>Causes <span class="command"><strong>svnserve</strong></span> to use the <code class="filename">stdin</code> and <code class="filename">stdout</code> file descriptors, as is appropriate for a daemon running out of <span class="command"><strong>inetd</strong></span>.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.help"></a> <span class="term"><code class="option">--help</code> (<code class="option">-h</code>)</span> </dt> <dd> <p>Displays a usage summary and exits.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.listen_host"></a> <span class="term"><code class="option">--listen-host</code> <em class="replaceable"><code>HOST</code></em></span> </dt> <dd> <p>Causes <span class="command"><strong>svnserve</strong></span> to listen on the interface specified by <em class="replaceable"><code>HOST</code></em>, which may be either a hostname or an IP address.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.listen_once"></a> <span class="term"><code class="option">--listen-once</code> (<code class="option">-X</code>)</span> </dt> <dd> <p>Causes <span class="command"><strong>svnserve</strong></span> to accept one connection on the <code class="literal">svn</code> port, serve it, and exit. This option is mainly useful for debugging.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.listen_port"></a> <span class="term"><code class="option">--listen-port</code> <em class="replaceable"><code>PORT</code></em></span> </dt> <dd> <p>Causes <span class="command"><strong>svnserve</strong></span> to listen on <em class="replaceable"><code>PORT</code></em> when run in daemon mode. (FreeBSD daemons listen only on tcp6 by default—this option tells them to also listen on tcp4.)</p> </dd> <dt> <a id="svn.ref.svnserve.sw.log_file"></a> <span class="term"><code class="option">--log-file</code> <em class="replaceable"><code>FILENAME</code></em></span> </dt> <dd> <p>Instructs <span class="command"><strong>svnserve</strong></span> to create (if necessary) and use the file located at <em class="replaceable"><code>FILENAME</code></em> for Subversion operational log output of the same sort that <span class="command"><strong>mod_dav_svn</strong></span> generates. See <a class="xref" href="svn.serverconfig.operational-logging.html" title="High-level Logging">the section called “High-level Logging”</a> for details.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.memory_cache_size"></a> <span class="term"><code class="option">--memory-cache-size</code> (<code class="option">-M</code>) <em class="replaceable"><code>ARG</code></em></span> </dt> <dd> <p>Configures the size (in Megabytes) of the extra in-memory cache used to minimize redundant operations. The default value is <code class="literal">16</code>. (This cache is used for FSFS-backed repositories only.)</p> </dd> <dt> <a id="svn.ref.svnserve.sw.pid_file"></a> <span class="term"><code class="option">--pid-file</code> <em class="replaceable"><code>FILENAME</code></em></span> </dt> <dd> <p>Causes <span class="command"><strong>svnserve</strong></span> to write its process ID to <em class="replaceable"><code>FILENAME</code></em>, which must be writable by the user under which <span class="command"><strong>svnserve</strong></span> is running.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.prefer_ipv6"></a> <span class="term"><code class="option">--prefer-ipv6</code> (<code class="option">-6</code>)</span> </dt> <dd> <p>When resolving the listen hostname, prever an IPv6 answer over an IPv4 one. IPv4 is preferred by default.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.quiet"></a> <span class="term"> <code class="option">--quiet</code> </span> </dt> <dd> <p>Disables progress notifications. Error output will still be printed.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.root"></a> <span class="term"><code class="option">--root</code> (<code class="option">-r</code>) <em class="replaceable"><code>ROOT</code></em></span> </dt> <dd> <p>Sets the virtual root for repositories served by <span class="command"><strong>svnserve</strong></span>. The pathname in URLs provided by the client will be interpreted relative to this root and will not be allowed to escape this root.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.threads"></a> <span class="term"><code class="option">--threads</code> (<code class="option">-T</code>)</span> </dt> <dd> <p>When running in daemon mode, causes <span class="command"><strong>svnserve</strong></span> to spawn a thread instead of a process for each connection (e.g., for when running on Windows). The <span class="command"><strong>svnserve</strong></span> process still backgrounds itself at startup time.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.tunnel"></a> <span class="term"><code class="option">--tunnel</code> (<code class="option">-t</code>)</span> </dt> <dd> <p>Causes <span class="command"><strong>svnserve</strong></span> to run in tunnel mode, which is just like the <span class="command"><strong>inetd</strong></span> mode of operation (both modes serve one connection over <code class="filename">stdin</code>/<code class="filename">stdout</code>, and then exit), except that the connection is considered to be preauthenticated with the username of the current UID. This flag is automatically passed for you by the client when running over a tunnel agent such as <span class="command"><strong>ssh</strong></span>. That means there's rarely any need for <span class="emphasis"><em>you</em></span> to pass this option to <span class="command"><strong>svnserve</strong></span>. So, if you find yourself typing <code class="literal">svnserve --tunnel</code> on the command line and wondering what to do next, see <a class="xref" href="svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.sshauth" title="Tunneling over SSH">the section called “Tunneling over SSH”</a>.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.tunnel_user"></a> <span class="term"><code class="option">--tunnel-user</code> <em class="replaceable"><code>NAME</code></em></span> </dt> <dd> <p>Used in conjunction with the <code class="option">--tunnel</code> option, tells <span class="command"><strong>svnserve</strong></span> to assume that <em class="replaceable"><code>NAME</code></em> is the authenticated user, rather than the UID of the <span class="command"><strong>svnserve</strong></span> process. This is useful for users wishing to share a single system account over SSH, but to maintain separate commit identities.</p> </dd> <dt> <a id="svn.ref.svnserve.sw.version"></a> <span class="term"> <code class="option">--version</code> </span> </dt> <dd> <p>Displays version information and a list of repository backend modules available, and then exits.</p> </dd> </dl> </div> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="svn.ref.svnserve.html">Prev</a> </td> <td width="20%" align="center"> <a accesskey="u" href="svn.ref.svnserve.html">Up</a> </td> <td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnversion.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">svnserve Reference—Custom Subversion Server </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> svnversion Reference—Subversion Working Copy Version Info</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>