Sophie

Sophie

distrib > Mageia > 6 > i586 > media > core-updates > by-pkgid > d32d95698a59acd37b394f83dfc217c6 > files > 29

subversion-doc-1.9.7-1.mga6.i586.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>Runtime Configuration Area</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.customization.html" title="Chapter 7. Customizing Your Subversion Experience" />
    <link rel="prev" href="svn.customization.html" title="Chapter 7. Customizing Your Subversion Experience" />
    <link rel="next" href="svn.advanced.l10n.html" title="Localization" />
  </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">Runtime Configuration Area</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="svn.customization.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 7. Customizing Your Subversion Experience</th>
          <td width="20%" align="right"> <a accesskey="n" href="svn.advanced.l10n.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" title="Runtime Configuration Area">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="svn.advanced.confarea"></a>Runtime Configuration Area</h2>
          </div>
        </div>
      </div>
      <p>Subversion provides many optional behaviors that the user can
      control.  Many of these options are of the kind
      that a user would wish to apply to all Subversion operations.
      So, rather than forcing users to remember command-line arguments
      for specifying these options and to use them for every
      operation they perform, Subversion uses configuration files,
      segregated into a Subversion configuration area.</p>
      <p>
      <a id="idp18372752" class="indexterm"></a>The Subversion <em class="firstterm">runtime configuration
      area</em> is a two-tiered hierarchy of option names and
      their values.  Usually, this boils down to a special directory
      that contains configuration files (the first tier), which are
      just text files in standard INI format
      where <span class="quote">“<span class="quote">sections</span>”</span> provide the second tier.  You can
      easily edit these files using your favorite text editor (such as
      Emacs or vi), and they contain directives read by the client to
      determine which of several optional behaviors the user
      prefers.</p>
      <div class="sect2" title="Configuration Area Layout">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="svn.advanced.confarea.layout"></a>Configuration Area Layout</h3>
            </div>
          </div>
        </div>
        <p>
        <a id="idp18377088" class="indexterm"></a>The first time the <span class="command"><strong>svn</strong></span> command-line
        client is executed, it creates a per-user configuration area.
        On Unix-like systems, this area appears as a directory
        named <code class="filename">.subversion</code> in the user's home
        directory.  On Win32 systems, Subversion creates a folder
        named <code class="filename">Subversion</code>, typically inside
        the <code class="filename">Application Data</code> area of the user's
        profile directory (which, by the way, is usually a hidden
        directory).  However, on this platform, the exact location
        differs from system to system and is dictated by the Windows
        Registry.<sup>[<a id="idp18381920" href="#ftn.idp18381920" class="footnote">76</a>]</sup>
        We will refer to the per-user configuration area using its
        Unix name, <code class="filename">.subversion</code>.</p>
        <p>
        <a id="idp18385776" class="indexterm"></a>In addition to the per-user configuration area, Subversion
        also recognizes the existence of a system-wide configuration
        area.  This gives system administrators the ability to
        establish defaults for all users on a given machine.  Note
        that the system-wide configuration area alone does not dictate
        mandatory policy—the settings in the per-user
        configuration area override those in the system-wide one, and
        command-line arguments supplied to the <span class="command"><strong>svn</strong></span>
        program have the final word on behavior.  On Unix-like
        platforms, the system-wide configuration area is
        expected to be the <code class="filename">/etc/subversion</code>
        directory; on Windows machines, it looks for a
        <code class="filename">Subversion</code> directory inside the common
        <code class="filename">Application Data</code> location (again, as
        specified by the Windows Registry).  Unlike the per-user
        case, the <span class="command"><strong>svn</strong></span> program does not attempt
        to create the system-wide configuration area.</p>
        <p>The per-user configuration area currently contains three
        files—two configuration files (<code class="filename">config</code> and
        <code class="filename">servers</code>), and a <code class="filename">README.txt</code> 
        file, which describes the INI format.  At the time of their
        creation, the files contain default values for each of the
        supported Subversion options, mostly commented out and grouped
        with textual descriptions about how the values for the key
        affect Subversion's behavior.  To change a certain behavior,
        you need only to load the appropriate configuration file into
        a text editor, and to modify the desired option's value.  If at
        any time you wish to have the default configuration settings
        restored, you can simply remove (or rename) your configuration
        directory and then run some innocuous <span class="command"><strong>svn</strong></span>
        command, such as <strong class="userinput"><code>svn --version</code></strong>.  A new
        configuration directory with the default contents will be
        created.</p>
        <p>
        <a id="idp18396944" class="indexterm"></a>Subversion also allows you to override individual
        configuration option values at the command line via
        the <code class="option">--config-option</code> option, which is
        especially useful if you need to make a (very) temporary
        change in behavior.  For more about this option's proper
        usage, see <a class="xref" href="svn.ref.svn.html#svn.ref.svn.sw" title="svn Options">svn Options</a>.</p>
        <p>The per-user configuration area also contains a cache of
        authentication data.  The <code class="filename">auth</code> directory
        holds a set of subdirectories that contain pieces of cached
        information used by Subversion's various supported
        authentication methods.  This directory is created in such a
        way that only the user herself has permission to read its
        contents.</p>
      </div>
      <div class="sect2" title="Configuration and the Windows Registry">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="svn.advanced.confarea.windows-registry"></a>Configuration and the Windows Registry</h3>
            </div>
          </div>
        </div>
        <p>
        <a id="idp18403440" class="indexterm"></a>In addition to the usual INI-based configuration
        area, Subversion clients running on Windows platforms may also
        use the Windows Registry to hold the configuration data.  The
        option names and their values are the same as in the INI
        files.  The <span class="quote">“<span class="quote">file/section</span>”</span> hierarchy is preserved
        as well, though addressed in a slightly different
        fashion—in this schema, files and sections are just
        levels in the Registry key tree.</p>
        <p>Subversion looks for system-wide configuration values
        under the
        <code class="literal">HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion</code>
        key.  For example, the <code class="literal">global-ignores</code> option,
        which is in the <code class="literal">miscellany</code> section of the
        <code class="filename">config</code> file, would be found at
        <code class="literal">HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Config\Miscellany\global-ignores</code>.
        Per-user configuration values should be stored under
        <code class="literal">HKEY_CURRENT_USER\Software\Tigris.org\Subversion</code>.</p>
        <p>Registry-based configuration options are parsed
        <span class="emphasis"><em>before</em></span> their file-based counterparts, so
        they are overridden by values found in the configuration files.  In
        other words, Subversion looks for configuration information in
        the following locations on a Windows system; lower-numbered
        locations take precedence over higher-numbered locations:</p>
        <div class="orderedlist">
          <ol class="orderedlist" type="1">
            <li class="listitem">
              <p>Command-line options</p>
            </li>
            <li class="listitem">
              <p>The per-user INI files</p>
            </li>
            <li class="listitem">
              <p>The per-user Registry values</p>
            </li>
            <li class="listitem">
              <p>The system-wide INI files</p>
            </li>
            <li class="listitem">
              <p>The system-wide Registry values</p>
            </li>
          </ol>
        </div>
        <p>Also, the Windows Registry doesn't really support the
        notion of something being <span class="quote">“<span class="quote">commented out.</span>”</span>
        However, Subversion will ignore any option key whose name
        begins with a hash (<code class="literal">#</code>) character.  This
        allows you to effectively comment out a Subversion option
        without deleting the entire key from the Registry, obviously
        simplifying the process of restoring that option.</p>
        <p>The <span class="command"><strong>svn</strong></span> command-line client never
        attempts to write to the Windows Registry and will not attempt
        to create a default configuration area there.  You can create
        the keys you need using the <span class="command"><strong>REGEDIT</strong></span>
        program.  Alternatively, you can create a
        <code class="filename">.reg</code> file (such as the one in <a class="xref" href="svn.advanced.confarea.html#svn.advanced.confarea.windows-registry.ex-1" title="Example 7.1. Sample registration entries (.reg) file">Example 7.1, “Sample registration entries (.reg) file”</a>), and
        then double-click on that file's icon in the Explorer shell,
        which will cause the data to be merged into your
        Registry.</p>
        <div class="example">
          <a id="svn.advanced.confarea.windows-registry.ex-1"></a>
          <p class="title">
            <strong>Example 7.1. Sample registration entries (.reg) file</strong>
          </p>
          <div class="example-contents">
            <pre class="programlisting">
REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\groups]

[HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\global]
"#http-auth-types"="basic;digest;negotiate"
"#http-compression"="yes"
"#http-library"=""
"#http-proxy-exceptions"=""
"#http-proxy-host"=""
"#http-proxy-password"=""
"#http-proxy-port"=""
"#http-proxy-username"=""
"#http-timeout"="0"
"#neon-debug-mask"=""
"#ssl-authority-files"=""
"#ssl-client-cert-file"=""
"#ssl-client-cert-password"=""
"#ssl-pkcs11-provider"=""
"#ssl-trust-default-ca"=""
"#store-auth-creds"="yes"
"#store-passwords"="yes"
"#store-plaintext-passwords"="ask"
"#store-ssl-client-cert-pp"="yes"
"#store-ssl-client-cert-pp-plaintext"="ask"
"#username"=""

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auth]
"#password-stores"="windows-cryptoapi"

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\helpers]
"#diff-cmd"=""
"#diff-extensions"="-u"
"#diff3-cmd"=""
"#diff3-has-program-arg"=""
"#editor-cmd"="notepad"
"#merge-tool-cmd"=""

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\tunnels]

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany]
"#enable-auto-props"="no"
"#global-ignores"="*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store"
"#interactive-conflicts"="yes"
"#log-encoding"=""
"#mime-types-file"=""
"#no-unlock"="no"
"#preserved-conflict-file-exts"="doc ppt xls od?"
"#use-commit-times"="no"

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auto-props]
</pre>
          </div>
        </div>
        <br class="example-break" />
        <p><a class="xref" href="svn.advanced.confarea.html#svn.advanced.confarea.windows-registry.ex-1" title="Example 7.1. Sample registration entries (.reg) file">Example 7.1, “Sample registration entries (.reg) file”</a>
        shows the contents of a <code class="filename">.reg</code> file, which
        contains some of the most commonly used configuration options
        and their default values.  Note the presence of both
        system-wide (for network proxy-related options) and per-user
        settings (editor programs and password storage, among others).
        Also note that all the options are effectively commented out.
        You need only to remove the hash (<code class="literal">#</code>)
        character from the beginning of the option names and set the
        values as you desire.</p>
      </div>
      <div class="sect2" title="Runtime Configuration Options">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="svn.advanced.confarea.opts"></a>Runtime Configuration Options</h3>
            </div>
          </div>
        </div>
        <p>
        <a id="idp18432672" class="indexterm"></a>In this section, we will discuss the specific
        runtime configuration options that Subversion currently 
        supports.</p>
        <div class="sect3" title="General configuration">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="svn.advanced.confarea.opts.config"></a>General configuration</h4>
              </div>
            </div>
          </div>
          <p>The <code class="filename">config</code> file contains the rest
          of the currently available Subversion runtime
          options—those not related to networking.  There are
          only a few options in use as of this writing, but they are
          again grouped into sections in expectation of future
          additions.</p>
          <p>The <code class="literal">[auth]</code> section contains settings
          related to Subversion's authentication and authorization
          against the repository.  It contains the following:</p>
          <div class="variablelist">
            <dl>
              <dt>
                <span class="term">
                  <code class="literal">password-stores</code>
                </span>
              </dt>
              <dd>
                <p>This comma-delimited list specifies which (if any)
                system-provided password stores Subversion should
                attempt to use when saving and retrieving cached
                authentication credentials, and in what order
                Subversion should prefer them.  The default value is
                <code class="literal">gnome-keyring, kwallet, keychain,
                windows-crypto-api</code>, representing the GNOME
                Keyring, KDE Wallet, Mac OS X Keychain, and Microsoft
                Windows cryptography API, respectively.  Listed stores
                which are not available on the system are
                ignored.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">store-passwords</code>
                </span>
              </dt>
              <dd>
                <p>This option has been deprecated from
                the <code class="filename">config</code> file.  It now lives as
                a per-server configuration item in
                the <code class="filename">servers</code> configuration area.
                See <a class="xref" href="svn.advanced.confarea.html#svn.advanced.confarea.opts.servers" title="Per-server configuration">the section called “Per-server configuration”</a>
                for details.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">store-auth-creds</code>
                </span>
              </dt>
              <dd>
                <p>This option has been deprecated from
                the <code class="filename">config</code> file.  It now lives as
                a per-server configuration item in
                the <code class="filename">servers</code> configuration area.
                See <a class="xref" href="svn.advanced.confarea.html#svn.advanced.confarea.opts.servers" title="Per-server configuration">the section called “Per-server configuration”</a>
                for details.</p>
              </dd>
            </dl>
          </div>
          <p>The <code class="literal">[helpers]</code> section controls which
          external applications Subversion uses to accomplish its
          tasks.  Valid options in this section are:</p>
          <div class="variablelist">
            <dl>
              <dt>
                <span class="term">
                  <code class="literal">diff-cmd</code>
                </span>
              </dt>
              <dd>
                <p>This specifies the absolute path of a differencing
                program, used when Subversion generates
                <span class="quote">“<span class="quote">diff</span>”</span> output (such as when using the
                <span class="command"><strong>svn diff</strong></span> command).  By default,
                Subversion uses an internal differencing
                library—setting this option will cause it to
                perform this task using an external program.  See
                <a class="xref" href="svn.advanced.externaldifftools.html" title="Using External Differencing and Merge Tools">the section called “Using External Differencing and Merge Tools”</a> for
                more details on using such programs.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">diff-extensions</code>
                </span>
              </dt>
              <dd>
                <p>Like the <code class="option">--extensions</code>
                (<code class="option">-x</code>) command-line option, this
                specifies additional options passed to the file
                content differencing engine.  The set of meaningful
                extension options differs depending on whether the
                client is using Subversion's internal differencing
                engine or an external mechanism.  See the output
                of <strong class="userinput"><code>svn help diff</code></strong> for details.
                The default value for this option
                is <code class="literal">-u</code>.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">diff3-cmd</code>
                </span>
              </dt>
              <dd>
                <p>This specifies the absolute path of a three-way
                differencing program.  Subversion uses this program to
                merge changes made by the user with those received
                from the repository.  By default, Subversion uses an
                internal differencing library—setting this
                option will cause it to perform this task using an
                external program.  See <a class="xref" href="svn.advanced.externaldifftools.html" title="Using External Differencing and Merge Tools">the section called “Using External Differencing and Merge Tools”</a> for more
                details on using such programs.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">diff3-has-program-arg</code>
                </span>
              </dt>
              <dd>
                <p>This flag should be set to <code class="literal">true</code>
                if the program specified by the
                <code class="literal">diff3-cmd</code> option accepts a
                <code class="option">--diff-program</code> command-line
                parameter.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">editor-cmd</code>
                </span>
              </dt>
              <dd>
                <p>This specifies the program Subversion will use to
                query the user for certain types of textual metadata
                or when interactively resolving conflicts.  See
                <a class="xref" href="svn.advanced.externaleditors.html" title="Using External Editors">the section called “Using External Editors”</a> for
                more details on using external text editors with
                Subversion.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">merge-tool-cmd</code>
                </span>
              </dt>
              <dd>
                <p>This specifies the program that Subversion will
                use to perform three-way merge operations on your
                versioned files.  See <a class="xref" href="svn.advanced.externaldifftools.html" title="Using External Differencing and Merge Tools">the section called “Using External Differencing and Merge Tools”</a> for more
                details on using such programs.</p>
              </dd>
            </dl>
          </div>
          <p>The <code class="literal">[tunnels]</code> section allows you to
          define new tunnel schemes for use with
          <span class="command"><strong>svnserve</strong></span> and <code class="literal">svn://</code>
          client connections.  For more details, 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>
          <p>The <code class="literal">miscellany</code> section is where
          everything that doesn't belong elsewhere winds
          up.<sup>[<a id="idp18479216" href="#ftn.idp18479216" class="footnote">77</a>]</sup>  In this section, you can
          find:</p>
          <div class="variablelist">
            <dl>
              <dt>
                <span class="term">
                  <code class="literal">enable-auto-props</code>
                </span>
              </dt>
              <dd>
                <p>This instructs Subversion to automatically set
                properties on newly added or imported files.  The
                default value is <code class="literal">no</code>, so set this to
                <code class="literal">yes</code> to enable this feature.
                The <code class="literal">[auto-props]</code> section of this file
                specifies which properties are to be set on which files.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">global-ignores</code>
                </span>
              </dt>
              <dd>
                <p>When running the <span class="command"><strong>svn status</strong></span>
                command, Subversion lists unversioned files and
                directories along with the versioned ones, annotating
                them with a <code class="literal">?</code> character (see <a class="xref" href="svn.tour.cycle.html#svn.tour.cycle.examine.status" title="See an overview of your changes">the section called “See an overview of your changes”</a>).  Sometimes it can
                be annoying to see uninteresting, unversioned
                items—for example, object files that result from
                a program's compilation—in this display.  The
                <code class="literal">global-ignores</code> option is a list of
                whitespace-delimited globs that describe the names of
                files and directories that Subversion should not
                display unless they are versioned.  The default value
                is <code class="literal">*.o *.lo *.la *.al .libs *.so *.so.[0-9]*
                *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp
                .DS_Store</code>.</p>
                <p>As well as <span class="command"><strong>svn status</strong></span>, the
                <span class="command"><strong>svn add</strong></span> and <span class="command"><strong>svn import</strong></span>
                commands also ignore files that match the list
                when they are scanning a directory.  You can override this
                behavior for a single instance of any of these commands
                by explicitly specifying the filename, or by using
                the <code class="option">--no-ignore</code> command-line flag.</p>
                <p>For information on finer-grained control of
                ignored items, see 
                <a class="xref" href="svn.advanced.props.special.ignore.html" title="Ignoring Unversioned Items">the section called “Ignoring Unversioned Items”</a>.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">interactive-conflicts</code>
                </span>
              </dt>
              <dd>
                <p>This is a Boolean option that specifies whether
                Subversion should try to resolve conflicts
                interactively.  If its value is <code class="literal">yes</code>
                (which is the default value), Subversion will prompt
                the user for how to handle conflicts in the manner
                demonstrated in <a class="xref" href="svn.tour.cycle.html#svn.tour.cycle.resolve" title="Resolve Any Conflicts">the section called “Resolve Any Conflicts”</a>.  Otherwise, it will simply flag the conflict and
                continue its operation, postponing resolution to a later
                time.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">log-encoding</code>
                </span>
              </dt>
              <dd>
                <p>This variable sets the default character set
                encoding for commit log messages.  It's a permanent
                form of the <code class="option">--encoding</code> option (see
                <a class="xref" href="svn.ref.svn.html#svn.ref.svn.sw" title="svn Options">svn Options</a>).  The Subversion
                repository stores log messages in UTF-8 and assumes
                that your log message is written using your operating
                system's native locale.  You should specify a
                different encoding if your commit messages are written
                in any other encoding.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">mime-types-file</code>
                </span>
              </dt>
              <dd>
                <p>This option, new to Subversion 1.5, specifies the
                path of a MIME types mapping file, such as the
                <code class="filename">mime.types</code> file provided by the
                Apache HTTP Server.  Subversion uses this file to
                assign MIME types to newly added or imported files.
                See <a class="xref" href="svn.advanced.props.html#svn.advanced.props.auto" title="Automatic Property Setting">the section called “Automatic Property Setting”</a> and
                <a class="xref" href="svn.advanced.props.file-portability.html#svn.advanced.props.special.mime-type" title="File Content Type">the section called “File Content Type”</a> for more about Subversion's detection and use of
                file content types.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">no-unlock</code>
                </span>
              </dt>
              <dd>
                <p>This Boolean option corresponds to <span class="command"><strong>svn
                commit</strong></span>'s <code class="option">--no-unlock</code>
                option, which tells Subversion not to release locks on
                files you've just committed.  If this runtime option
                is set to <code class="literal">yes</code>, Subversion will
                never release locks automatically, leaving you to run
                <span class="command"><strong>svn unlock</strong></span> explicitly.  It defaults
                to <code class="literal">no</code>.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">preserved-conflict-file-exts</code>
                </span>
              </dt>
              <dd>
                <p>The value of this option is a space-delimited list
                of file extensions that Subversion should preserve
                when generating conflict filenames.  By default, the
                list is empty.  This option is new to Subversion
                1.5.</p>
                <p>When Subversion detects conflicting file content
                changes, it defers resolution of those conflicts to the
                user.  To assist in the resolution, Subversion keeps
                pristine copies of the various competing versions of
                the file in the working copy.  By default, those
                conflict files have names constructed by appending to
                the original filename a custom extension such as
                <code class="filename">.mine</code> or
                <code class="filename">.<em class="replaceable"><code>REV</code></em></code>
                (where <em class="replaceable"><code>REV</code></em> is a revision
                number).  A mild annoyance with this naming scheme is
                that on operating systems where a file's extension
                determines the default application used to open and
                edit that file, appending a custom extension prevents
                the file from being easily opened by its native
                application.  For example, if the file
                <code class="filename">ReleaseNotes.pdf</code> was conflicted,
                the conflict files might be named
                <code class="filename">ReleaseNotes.pdf.mine</code> or
                <code class="filename">ReleaseNotes.pdf.r4231</code>.  While
                your system might be configured to use Adobe's Acrobat
                Reader to open files whose extensions are
                <code class="filename">.pdf</code>, there probably isn't an
                application configured on your system to open all
                files whose extensions are
                <code class="filename">.r4231</code>.</p>
                <p>You can fix this annoyance by using this
                configuration option, though.  For files with one of
                the specified extensions, Subversion will append to
                the conflict file names the custom extension just as
                before, but then also reappend the file's original
                extension.  Using the previous example, and assuming
                that <code class="literal">pdf</code> is one of the extensions
                configured in this list thereof, the conflict files
                generated for <code class="filename">ReleaseNotes.pdf</code>
                would instead be named
                <code class="filename">ReleaseNotes.pdf.mine.pdf</code> and
                <code class="filename">ReleaseNotes.pdf.r4231.pdf</code>.
                Because each file ends in
                <code class="filename">.pdf</code>, the correct default
                application will be used to view them.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">use-commit-times</code>
                </span>
              </dt>
              <dd>
                <p>Normally your working copy files have timestamps
                that reflect the last time they were touched by any
                process, whether your own editor or some
                <span class="command"><strong>svn</strong></span> subcommand.  This is generally
                convenient for people developing software, because
                build systems often look at timestamps as a way of
                deciding which files need to be recompiled.</p>
                <p>In other situations, however, it's sometimes nice
                for the working copy files to have timestamps that
                reflect the last time they were changed in the
                repository.  The <span class="command"><strong>svn export</strong></span> command
                always places these <span class="quote">“<span class="quote">last-commit
                timestamps</span>”</span> on trees that it produces.  By
                setting this config variable to
                <code class="literal">yes</code>, the <span class="command"><strong>svn
                checkout</strong></span>, <span class="command"><strong>svn update</strong></span>,
                <span class="command"><strong>svn switch</strong></span>, and <span class="command"><strong>svn
                revert</strong></span> commands will also set last-commit
                timestamps on files that they touch.</p>
              </dd>
            </dl>
          </div>
          <p>The <code class="literal">[auto-props]</code> section controls the
          Subversion client's ability to automatically set properties
          on files when they are added or imported.  It contains any
          number of key-value pairs in the
          format <code class="literal"><em class="replaceable"><code>PATTERN</code></em>
          = <em class="replaceable"><code>PROPNAME</code></em>=<em class="replaceable"><code>VALUE</code></em>[;<em class="replaceable"><code>PROPNAME</code></em>=<em class="replaceable"><code>VALUE</code></em>
          ...]</code>, where <em class="replaceable"><code>PATTERN</code></em> is
          a file pattern that matches one or more filenames and the
          rest of the line is a semicolon-delimited set of property
          assignments.  (If you need to use a semicolon in your
          property's name or value, you can escape it by doubling
          it.)</p>
          <div class="informalexample">
            <pre class="screen">
$ cat ~/.subversion/config
…
[auto-props]
*.c = svn:eol-style=native
*.html = svn:eol-style=native;svn:mime-type=text/html;; charset=UTF8
*.sh = svn:eol-style=native;svn:executable
…
$ cd projects/myproject
$ svn status
?       www/index.html
$ svn add www/index.html
A         www/index.html
$ svn diff www/index.html
…

Property changes on: www/index.html
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/html; charset=UTF8
Added: svn:eol-style
## -0,0 +1 ##
+native
$
</pre>
          </div>
          <p>Multiple matches on a file will result in
          multiple propsets for that file; however, there is no
          guarantee that auto-props will be applied in the order in
          which they are listed in the config file, so you can't have
          one rule <span class="quote">“<span class="quote">override</span>”</span> another.  You can find
          several examples of auto-props usage in the
          <code class="filename">config</code> file.  Lastly, don't
          forget to set <code class="literal">enable-auto-props</code> to
          <code class="literal">yes</code> in the <code class="literal">miscellany</code>
          section if you want to enable auto-props.</p>
        </div>
        <div class="sect3" title="Per-server configuration">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="svn.advanced.confarea.opts.servers"></a>Per-server configuration</h4>
              </div>
            </div>
          </div>
          <p>The <code class="filename">servers</code> file contains
          Subversion configuration options related to the network
          layers.  There are two special sections in this
          file—<code class="literal">[groups]</code> and
          <code class="literal">[global]</code>.  The <code class="literal">[groups]</code>
          section is essentially a cross-reference table.  The keys in
          this section are the names of other sections in the file;
          their values are <em class="firstterm">globs</em>—textual
          tokens that possibly contain wildcard
          characters—that are compared against the hostnames of
          the machine to which Subversion requests are sent.</p>
          <div class="informalexample">
            <pre class="programlisting">
[groups]
beanie-babies = *.red-bean.com
collabnet = svn.collab.net

[beanie-babies]
…

[collabnet]
…
</pre>
          </div>
          <p>When Subversion is used over a network, it attempts to
          match the name of the server it is trying to reach with a
          group name under the <code class="literal">[groups]</code> section.  If
          a match is made, Subversion then looks for a section in the
          <code class="filename">servers</code> file whose name is the matched
          group's name.  From that section, it reads the actual network
          configuration settings.</p>
          <p>The <code class="literal">[global]</code> section contains the
          settings that are meant for all of the servers not matched
          by one of the globs under the <code class="literal">[groups]</code>
          section.  The options available in this section are
          exactly the same as those that are valid for the other server
          sections in the file (except, of course, the special
          <code class="literal">[groups]</code> section), and are as
          follows:</p>
          <div class="variablelist">
            <dl>
              <dt>
                <span class="term">
                  <code class="literal">http-auth-types</code>
                </span>
              </dt>
              <dd>
                <p>This is a semicolon-delimited list of HTTP
                authentication types which the client will deem
                acceptable.  Valid types
                are <code class="literal">basic</code>, <code class="literal">digest</code>,
                and <code class="literal">negotiate</code>, with the default
                behavior being acceptance of any these authentication
                types.  A client which insists on not transmitting
                authentication credentials in cleartext might, for
                example, be configured such that the value of this
                option is
                <code class="literal">digest;negotiate</code>—omitting
                <code class="literal">basic</code> from the list.  (Note that
                this setting is only honored by Subversion's
                Neon-based HTTP provider module.)</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">http-compression</code>
                </span>
              </dt>
              <dd>
                <p>This specifies whether Subversion should
                attempt to compress network requests made to DAV-ready
                servers.  The default value is <code class="literal">yes</code>
                (though compression will occur only if that capability
                is compiled into the network layer).  Set this to
                <code class="literal">no</code> to disable compression, such as
                when debugging network transmissions.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">http-library</code>
                </span>
              </dt>
              <dd>
                <p>The <code class="literal">http-library</code> runtime
                configuration option allows users to specify
                (generally, or in a per-server-group fashion) which of
                the available WebDAV access modules they'd prefer to
                use.  Prior to version 1.8, Subversion offered a pair
                of such modules: its original implementiation
                <code class="literal">libsvn_ra_neon</code> (selected by
                using the value <code class="literal">neon</code> for this
                option) and the newer <code class="literal">libsvn_ra_serf</code>
                (selected using the value <code class="literal">serf</code>).
                As of Subversion 1.8, only <code class="literal">libsvn_ra_serf</code>
                is supported.  This configuration option remains,
                though, because the runtime configuration area is
                version-agnostic.  Users with multiple versions of
                Subversion installed may still wish to enable the use
                of <code class="literal">libsvn_ra_neon</code> for sites which
                they access with an older version of Subversion.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">http-proxy-exceptions</code>
                </span>
              </dt>
              <dd>
                <p>This specifies a comma-separated list of patterns
                for repository hostnames that should be accessed
                directly, without using the proxy machine.  The
                pattern syntax is the same as is used in the Unix
                shell for filenames.  A repository hostname matching
                any of these patterns will not be proxied.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">http-proxy-host</code>
                </span>
              </dt>
              <dd>
                <p>This specifies the hostname of the proxy computer
                through which your HTTP-based Subversion requests must
                pass.  It defaults to an empty value, which means that
                Subversion will not attempt to route HTTP requests
                through a proxy computer, and will instead attempt to
                contact the destination machine directly.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">http-proxy-password</code>
                </span>
              </dt>
              <dd>
                <p>This specifies the password to supply to the proxy
                machine.  It defaults to an empty value.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">http-proxy-port</code>
                </span>
              </dt>
              <dd>
                <p>This specifies the port number on the proxy host
                to use.  It defaults to an empty value.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">http-proxy-username</code>
                </span>
              </dt>
              <dd>
                <p>This specifies the username to supply to the proxy
                machine.  It defaults to an empty value.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">http-timeout</code>
                </span>
              </dt>
              <dd>
                <p>This specifies the amount of time, in seconds, to
                wait for a server response.  If you experience
                problems with a slow network connection causing
                Subversion operations to time out, you should increase
                the value of this option.  The default value is
                <code class="literal">0</code>, which instructs the underlying
                HTTP library, Neon, to use its default timeout
                setting.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">neon-debug-mask</code>
                </span>
              </dt>
              <dd>
                <p>This is an integer mask that the Neon HTTP library
                uses for choosing what type of debugging output to
                yield.  The default value is <code class="literal">0</code>,
                which will silence all debugging output.  Prior to
                version 1.8, most Subversion clients used Neon (via
                the <code class="literal">libsvn_ra_neon</code> repository
                access module) for WebDAV/HTTP communications between
                the Subversion client and server.  Support
                for <code class="literal">libsvn_ra_neon</code> was dropped in
                Subversion 1.8, though, making this option obsolete
                for newer Subversion installations.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">ssl-authority-files</code>
                </span>
              </dt>
              <dd>
                <p>This is a semicolon-delimited list of paths to files
                containing certificates of the certificate authorities
                (or CAs) that
                are accepted by the Subversion client when accessing the
                repository over HTTPS.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">ssl-client-cert-file</code>
                </span>
              </dt>
              <dd>
                <p>If a host (or set of hosts) requires an SSL client
                certificate, you'll normally be prompted for a path to
                your certificate.  By setting this variable to that
                same path, Subversion will be able to find your client
                certificate automatically without prompting you.
                There's no standard place to store your certificate on
                disk; Subversion will grab it from any path you
                specify.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">ssl-client-cert-password</code>
                </span>
              </dt>
              <dd>
                <p>If your SSL client certificate file is encrypted
                by a passphrase, Subversion will prompt you for the
                passphrase whenever the certificate is used.  If you
                find this annoying (and don't mind storing the
                password in the <code class="filename">servers</code> file),
                you can set this variable to the certificate's
                passphrase.  You won't be prompted anymore.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">ssl-pkcs11-provider</code>
                </span>
              </dt>
              <dd>
                <p>The value of this option is the name of the
                PKCS#11 provider from which an SSL client certificate
                will be drawn (if the server asks for one).  This
                setting is only honored by Subversion's Neon-based
                HTTP provider module.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">ssl-trust-default-ca</code>
                </span>
              </dt>
              <dd>
                <p>Set this variable to <code class="literal">yes</code> if you
                want Subversion to automatically trust the set of
                default CAs that ship with OpenSSL.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">store-auth-creds</code>
                </span>
              </dt>
              <dd>
                <p>This setting is the same as
                <code class="literal">store-passwords</code>, except that it
                enables or disables on-disk caching of
                <span class="emphasis"><em>all</em></span> authentication information:
                usernames, passwords, server certificates, and any
                other types of cacheable credentials.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">store-passwords</code>
                </span>
              </dt>
              <dd>
                <p>This instructs Subversion to cache, or not to
                cache, passwords that are supplied by the user in
                response to server authentication challenges.  The
                default value is <code class="literal">yes</code>.  Set this to
                <code class="literal">no</code> to disable this on-disk password
                caching.  You can override this option for a single
                instance of the <span class="command"><strong>svn</strong></span> command using
                the <code class="option">--no-auth-cache</code> command-line
                parameter (for those subcommands that support it).
                For more information regarding that, see
                <a class="xref" href="svn.serverconfig.netmodel.html#svn.serverconfig.netmodel.credcache" title="Caching credentials">the section called “Caching credentials”</a>.
                Note that regardless of how this option is configured,
                Subversion will not store passwords in plaintext
                unless the <code class="literal">store-plaintext-passwords</code>
                option is also set to <code class="literal">yes</code>.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">store-plaintext-passwords</code>
                </span>
              </dt>
              <dd>
                <p>This variable is only important on UNIX-like systems.
                It controls what the Subversion client does in case
                the password for the current authentication realm can
                only be cached on disk in unencrypted form, in the
                <code class="filename">~/.subversion/auth/</code> caching area.
                You can set it to <code class="literal">yes</code> or
                <code class="literal">no</code> to enable or disable caching of
                passwords in unencrypted form, respectively.
                The default setting is <code class="literal">ask</code>, which causes
                the Subversion client to ask you each time a
                <span class="emphasis"><em>new</em></span> password is about to be added to
                the <code class="filename">~/.subversion/auth/</code> caching area.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">store-ssl-client-cert-pp</code>
                </span>
              </dt>
              <dd>
                <p>This option controls whether Subversion will cache
                SSL client certificate passphrases provided by the
                user.  Its value defaults to <code class="literal">yes</code>.
                Set this to <code class="literal">no</code> to disable this
                passphrase caching.</p>
              </dd>
              <dt>
                <span class="term">
                  <code class="literal">store-ssl-client-cert-pp-plaintext</code>
                </span>
              </dt>
              <dd>
                <p>This option controls whether Subversion, when
                attempting to cache an SSL client certificate
                passphrase, will be allowed to do so using its on-disk
                plaintext storage mechanism.  The default value of
                this option is <code class="literal">ask</code>, which causes
                the Subversion client to ask you each time a
                <span class="emphasis"><em>new</em></span> client certificate passphrase
                is about to be added to
                the <code class="filename">~/.subversion/auth/</code> caching
                area.  Set this option's value
                to <code class="literal">yes</code> or <code class="literal">no</code> to
                indicate your preference and avoid related
                prompts.</p>
              </dd>
            </dl>
          </div>
        </div>
      </div>
      <div class="footnotes">
        <br />
        <hr width="100" align="left" />
        <div class="footnote">
          <p><sup>[<a id="ftn.idp18381920" href="#idp18381920" class="para">76</a>] </sup>The <code class="literal">APPDATA</code>
        environment variable points to the <code class="filename">Application
        Data</code> area, so you can always refer to this folder
        as <code class="filename">%APPDATA%\Subversion</code>.</p>
        </div>
        <div class="footnote">
          <p><sup>[<a id="ftn.idp18479216" href="#idp18479216" class="para">77</a>] </sup>Anyone for potluck
          dinner?</p>
        </div>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="svn.customization.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="svn.customization.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="svn.advanced.l10n.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Chapter 7. Customizing Your Subversion Experience </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Localization</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>