[svnbook] r4397 committed - Split the book into parks, and further split the ginormous Chapter 9...
svnbook at googlecode.com
svnbook at googlecode.com
Tue Feb 5 15:52:12 CST 2013
Revision: 4397
Author: cmpilato at gmail.com
Date: Tue Feb 5 13:51:43 2013
Log: Split the book into parks, and further split the ginormous
Chapter 9
Reference into a bunch of smaller focused references.
* en/book/book.xml
Add character entities for the new reference sections, and break the
book up into distinct <part>s.
* en/book/styles.css
Stylistic tweaks for TOCs.
* en/book/ch09-reference.xml
Delete this, but divide its contents up into ...
* en/book/ref-davmodules.xml,
* en/book/ref-props.xml,
* en/book/ref-reposhooks.xml,
* en/book/ref-svn.xml,
* en/book/ref-svnadmin.xml,
* en/book/ref-svndumpfilter.xml,
* en/book/ref-svnlook.xml,
* en/book/ref-svnmucc.xml,
* en/book/ref-svnrdump.xml,
* en/book/ref-svnserve.xml,
* en/book/ref-svnsync.xml,
* en/book/ref-svnversion.xml
... all of these smaller, more focused <reference> files.
http://code.google.com/p/svnbook/source/detail?r=4397
Added:
/trunk/en/book/ref-davmodules.xml
/trunk/en/book/ref-props.xml
/trunk/en/book/ref-reposhooks.xml
/trunk/en/book/ref-svn.xml
/trunk/en/book/ref-svnadmin.xml
/trunk/en/book/ref-svndumpfilter.xml
/trunk/en/book/ref-svnlook.xml
/trunk/en/book/ref-svnmucc.xml
/trunk/en/book/ref-svnrdump.xml
/trunk/en/book/ref-svnserve.xml
/trunk/en/book/ref-svnsync.xml
/trunk/en/book/ref-svnversion.xml
Deleted:
/trunk/en/book/ch09-reference.xml
Modified:
/trunk/en/book/book.xml
/trunk/en/book/styles.css
=======================================
--- /dev/null
+++ /trunk/en/book/ref-davmodules.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,490 @@
+<reference id="svn.ref.davmodules">
+ <title>Subversion Apache HTTP Server Module Reference</title>
+
+ <!-- ### TODO: partintro -->
+
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+
+ <refentry id="svn.ref.mod_dav_svn.conf">
+ <refnamediv>
+ <refname>mod_dav_svn</refname>
+ <refpurpose>Subversion service module for Apache HTTP
+ Server</refpurpose>
+ </refnamediv>
+
+ <refsect1 id="svn.ref.mod_dav_svn.conf.desc">
+ <title>Description</title>
+
+ <para>This section briefly describes each Subversion
+ Apache configuration directive. For an in-depth
+ description of configuring Apache with Subversion, see <xref
+ linkend="svn.serverconfig.httpd"/>.</para>
+
+ </refsect1>
+
+ <refsect1 id="svn.ref.mod_dav_svn.conf.directives">
+ <title>Directives</title>
+
+ <para>These are the <filename>httpd.conf</filename> directives
+ that apply to <command>mod_dav_svn</command>:</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><literal>DAV svn</literal></term>
+ <listitem>
+
+ <para>Must be included in any
+ <literal>Directory</literal> or
+ <literal>Location</literal> block for a Subversion
+ repository. It tells <command>httpd</command> to use the
Subversion
+ backend for <literal>mod_dav</literal> to handle all
+ requests.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNActivitiesDB
+ <replaceable>directory-path</replaceable></literal></term>
+ <listitem>
+
+ <para>Specifies the location in the filesystem where the
+ activities database should be stored. By default,
+ <command>mod_dav_svn</command> creates and uses a
directory in the
+ repository
+ called <filename>dav/activities.d</filename>. The
+ path specified with this option must be an absolute
+ path.</para>
+
+ <para>If specified for
+ an <literal>SVNParentPath</literal> area,
<command>mod_dav_svn</command>
+ appends the basename of the repository to the path
+ specified here. For example:</para>
+
+ <informalexample>
+ <screen>
+<Location /svn>
+ DAV svn
+
+ # any "/svn/foo" URL will map to a repository in
+ # /net/svn.nfs/repositories/foo
+ SVNParentPath "/net/svn.nfs/repositories"
+
+ # any "/svn/foo" URL will map to an activities db in
+ # /var/db/svn/activities/foo
+ SVNActivitiesDB "/var/db/svn/activities"
+</Location>
+</screen>
+ </informalexample>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNAdvertiseV2Protocol On|Off</literal></term>
+ <listitem>
+
+ <para>New to Subversion 1.7, this toggles
+ whether <command>mod_dav_svn</command> advertises its
+ support for the new version of its HTTP protocol also
+ introduced in that version. Most admins will not wish
+ to use this directive (which is <literal>On</literal>
+ by default), choosing instead to enjoy the performance
+ benefits that the new protocol offers. However, whena
+ configuring a server as a write-through proxy to
+ another server which does not support the new
+ protocol, set this directive's value
+ to <literal>Off</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNAllowBulkUpdates On|Off</literal></term>
+ <listitem>
+
+ <para>Toggles support for all-inclusive
+ responses to update-style <literal>REPORT</literal>
+ requests. Subversion clients use
+ <literal>REPORT</literal> requests to get information
+ about directory tree checkouts and updates from
+ <command>mod_dav_svn</command>. They can ask the
+ server to send that information in one of two ways:
+ with the entirety of the tree's information in one
+ massive response, or with a
+ <firstterm>skelta</firstterm> (a skeletal
+ representation of a tree delta) which contains just
+ enough information for the client to know what
+ <emphasis>additional</emphasis> data to request from
+ the server. When this directive is included with a
+ value of <literal>Off</literal>,
+ <command>mod_dav_svn</command> will only ever respond
+ to these <literal>REPORT</literal> requests with
+ skelta responses, regardless of the type of responses
+ requested by the client.</para>
+
+ <para>Most folks won't need to use this directive at
+ all. It primarily exists for administrators who
+ wish—for security or auditing reasons—to
+ force Subversion clients to fetch individually all the
+ files and directories needed for updates and
+ checkouts, thus leaving an audit trail of
+ <literal>GET</literal> and <literal>PROPFIND</literal>
+ requests in Apache's logs. The default value of this
+ directive is <literal>On</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>SVNAutoversioning On|Off</literal></term>
+ <listitem>
+
+ <para>When its value is
+ <literal>On</literal>, allows write requests from
+ WebDAV clients to result in automatic commits. A
+ generic log message is auto-generated and attached to
+ each revision. If you enable autoversioning, you'll
+ likely want to set <literal>ModMimeUsePathInfo
+ On</literal> so that <literal>mod_mime</literal> can
+ set <literal>svn:mime-type</literal> to the correct
+ MIME type automatically (as best as
+ <literal>mod_mime</literal> is able to, of course).
+ For more information, see <xref
+ linkend="svn.webdav"/>. The default value of this
+ directive is <literal>Off</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNCacheFullTexts On|Off</literal></term>
+ <listitem>
+
+ <para>When set to <literal>On</literal>, this tells
+ Subversion to cache content fulltexts if sufficient
+ in-memory cache is available, which could offer a
+ significant performance benefit to the server. (See
+ also the <literal>SVNInMemoryCacheSize</literal>
+ directive.) The default value of this directive
+ is <literal>Off</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>SVNCacheTextDeltas On|Off</literal></term>
+ <listitem>
+
+ <para>When set to <literal>On</literal>, this tells
+ Subversion to cache content deltas if sufficient
+ in-memory cache is available, which could offer a
+ significant performance benefit to the server. (See
+ also the <literal>SVNInMemoryCacheSize</literal>
+ directive.) The default value of this directive
+ is <literal>Off</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNCompressionLevel
+ <replaceable>level</replaceable></literal></term>
+ <listitem>
+
+ <para>Specifies the compression level used when sending
+ file content over the network. A value
+ of <literal>0</literal> disables compression
+ altogether, and <literal>9</literal> is the maximum
+ value. <literal>5</literal> is the default
+ value.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNIndexXSLT
+ <replaceable>directory-path</replaceable></literal></term>
+ <listitem>
+
+ <para>Specifies the URI of an XSL transformation for
+ directory indexes. This directive is optional.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNInMemoryCacheSize
+ <replaceable>size</replaceable></literal></term>
+ <listitem>
+
+ <para>Specifies the maximum size (in kbytes) per process
+ of Subversion's in-memory object cache. The default
+ value is <literal>16384</literal>; use a value
+ of <literal>0</literal> to deactivate this cache
+ altogether.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNListParentPath On|Off</literal></term>
+ <listitem>
+
+ <para>When set to <literal>On</literal>, allows
+ a <literal>GET</literal>
+ of <literal>SVNParentPath</literal>, which results in
+ a listing of all repositories under that path. The
+ default setting is
+ <literal>Off</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNMasterURI
+ <replaceable>url</replaceable></literal></term>
+ <listitem>
+
+ <para>Specifies a URI to the master Subversion
+ repository (used for a write-through proxy).</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNParentPath
+ <replaceable>directory-path</replaceable></literal></term>
+ <listitem>
+
+ <para>Specifies the location in the filesystem of a
+ parent directory whose child directories are
+ Subversion repositories. In a configuration block for
+ a Subversion repository, either this directive or
+ <literal>SVNPath</literal> must be present, but not
+ both.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNPath
+ <replaceable>directory-path</replaceable></literal></term>
+ <listitem>
+
+ <para>Specifies the location in the
+ filesystem for a Subversion repository's files. In a
+ configuration block for a Subversion repository,
+ either this directive or
+ <literal>SVNParentPath</literal> must be present, but
+ not both.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNPathAuthz On|Off|
short_circuit</literal></term>
+ <listitem>
+
+ <para>Controls path-based authorization by enabling
+ subrequests (<literal>On</literal>), disabling
+ subrequests (<literal>Off</literal>; see <xref
+ linkend="svn.serverconfig.httpd.authz.pathauthzoff"/>),
+ or querying <command>mod_authz_svn</command> directly
+ (<literal>short_circuit</literal>). The default
+ value of this directive is <literal>On</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNReposName
+ <replaceable>name</replaceable></literal></term>
+ <listitem>
+
+ <para>Specifies the name of a Subversion repository for
+ use in <literal>HTTP GET</literal> responses. This
+ value will be prepended to the title of all directory
+ listings (which are served when you navigate to a
+ Subversion repository with a web browser). This
+ directive is optional.</para>
+
+ <note>
+ <para>Subversion will not use the repository name as
+ configured via this directive when trying to match
+ rules in access control files. The repository names
+ used in that file's syntax are always derived from
+ the repository URL. See
+ <xref
linkend="svn.serverconfig.pathbasedauthz.getting-started"
+ /> for details.</para>
+ </note>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNSpecialURI
+ <replaceable>component</replaceable></literal></term>
+ <listitem>
+
+ <para>Specifies the URI component (namespace) for
+ special Subversion resources. The default is
+ <literal>!svn</literal>, and most
+ administrators will never use this directive. Set
+ this only if there is a pressing need to have a file
+ named <filename>!svn</filename> in your repository.
+ If you change this on a server already in use, it will
+ break all of the outstanding working copies, and your
+ users will hunt you down with pitchforks and flaming
+ torches.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>SVNUseUTF8 On|Off</literal></term>
+ <listitem>
+
+ <para>When set to <literal>On</literal>,
+ <command>mod_dav_svn</command> will communicate with
+ hook scripts using repository root paths encoded in
+ UTF-8, and will expect those scripts to likewise
+ generate output (such as error messages) encoded in
+ UTF-8. The default value of this option
+ is <literal>Off</literal>, which means
+ that <command>mod_dav_svn</command> assumes a 7-bit
+ ASCII encoding for its hook script interactions. This
+ option is available as of Subversion 1.8.</para>
+
+ <note>
+ <para>Administrators should ensure that the character
+ set and encoding expectations of hook scripts match
+ all the ways they might be invoked. For example, if
+ one repository is served by both <command>httpd</command>
+ and <command>svnserve</command>,
<command>svnserve</command>
+ should also be configured to use UTF-8 (by setting
+ an appropriate locale in its environment) if this
+ option is enabled for <command>mod_dav_svn</command>.
+ Also, local filesystem paths containing non-ASCII
+ characters which will be accessed by those scripts
+ (such as repository root paths) must be properly
+ encoded in the filesystem to match the scripts'
+ expectations.</para>
+ </note>
+
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+ </refentry>
+
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+ <refentry id="svn.ref.mod_authz_svn.conf">
+ <refnamediv>
+ <refname>mod_authz_svn</refname>
+ <refpurpose>Subversion path-based authorization module for
+ Apache HTTP Server</refpurpose>
+ </refnamediv>
+
+ <refsect1 id="svn.ref.mod_authz_svn.conf.desc">
+ <title>Description</title>
+
+ <para>This section briefly describes each Apache configuration
+ directive offered by <command>mod_authz_svn</command>. For
+ an in-depth description of using path-based authorization in
+ Subversion, see <xref
linkend="svn.serverconfig.pathbasedauthz"/>.</para>
+
+ </refsect1>
+
+ <refsect1 id="svn.ref.mod_authz_svn.conf.directives">
+ <title>Directives</title>
+
+ <para>These are the <filename>httpd.conf</filename> directives
+ that apply to <command>mod_authz_svn</command>:</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><literal>AuthzForceUsernameCase Upper|
Lower</literal></term>
+ <listitem>
+
+ <para>Set to <literal>Upper</literal>
+ or <literal>Lower</literal> to perform case conversion
+ of the specified sort on the authenticated username
+ before checking it for authorization. While usernames
+ are compared in a case-sensitive fashion against those
+ referenced in the authorization rules file, this
+ directive can at least normalize variably-cased
+ usernames into something consistent.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>AuthzSVNAccessFile
+ <replaceable>file-path</replaceable></literal></term>
+ <listitem>
+
+ <para>Consult <replaceable>file-path</replaceable> for
+ access rules describing the permissions for paths in
+ Subversion repository.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>AuthzSVNAnonymous On|Off</literal></term>
+ <listitem>
+
+ <para>Set to <literal>Off</literal> to disable two
+ special-case behaviours of this module: interaction
+ with the <literal>Satisfy Any</literal> directive and
+ enforcement of the authorization policy even when no
+ <literal>Require</literal> directives are present.
+ The default value of this directive is
+ <literal>On</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>AuthzSVNAuthoritative On|Off</literal></term>
+ <listitem>
+
+ <para>Set to <literal>Off</literal> to allow access
+ control to be passed along to lower modules. The
+ default value of this directive is
+ <literal>On</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>AuthzSVNNoAuthWhenAnonymousAllowed On|
Off</literal></term>
+ <listitem>
+
+ <para>Set to <literal>On</literal> to suppress
+ authentication and authorization for requests which
+ anonymous users are allowed to perform. The default
+ value of this directive is
+ <literal>On</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ </refentry>
+
+</reference>
+
+<!--
+local variables:
+sgml-parent-document: ("book.xml" "reference")
+end:
+-->
=======================================
--- /dev/null
+++ /trunk/en/book/ref-props.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,345 @@
+<reference id="svn.ref.properties">
+ <title>Subversion Property Reference</title>
+
+ <partintro>
+
+ <para>Subversion uses properties—bits of metadata that are
+ stored along the user's versioned data but are not strictly part
+ of it—to provide a number of built-in behaviors and
+ features, and to offer users a place to stash out-of-band
+ information regarding their versioned data and the changes made
+ to it. Subversion allows users to invent arbitrarily named
+ versioned properties on files and directories, as well as
+ unversioned properties on revisions. The only restriction is on
+ properties whose names begin with <literal>svn:</literal> (those
+ are reserved for Subversion's own use). While these properties
+ may be set by users to control Subversion's behavior, users may
+ not invent new <literal>svn:</literal> properties.</para>
+
+ <para>This reference describes the built-in properties which
+ toggle or otherwise support Subversion features.</para>
+
+ </partintro>
+
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.properties.versioned-props">
+ <refnamediv>
+ <refname>Versioned Properties</refname>
+ <refpurpose>Properties associated with versioned files and
+ directories</refpurpose>
+ </refnamediv>
+
+ <refsect1 id="svn.ref.properties.versioned-props.list">
+ <title>Properties</title>
+
+
+ <para>These are the versioned properties that Subversion reserves
+ for its own use:</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><literal>svn:auto-props</literal></term>
+ <listitem>
+
+ <para>If present on a directory, the value is a set of
+ automatic property definitions which apply to all files
+ under the directory, See
+ <xref
+ linkend="svn.advanced.props.auto"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:executable</literal></term>
+ <listitem>
+
+ <para>If present on a file, the client will make the
+ file executable in Unix-hosted working copies. See
+ <xref
+ linkend="svn.advanced.props.special.executable"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:mime-type</literal></term>
+ <listitem>
+
+ <para>If present on a file, the value indicates the
+ file's MIME type. This allows the client to decide
+ whether line-based contextual merging is safe to
+ perform during updates, and can also affect how the
+ file behaves when fetched via a web browser. See
+ <xref
+ linkend="svn.advanced.props.special.mime-type"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:ignore</literal></term>
+ <listitem>
+
+ <para>If present on a directory, the value is a list of
+ <emphasis>unversioned</emphasis> file patterns to be ignored
+ by <command>svn status</command> and other
+ subcommands. See
+ <xref
+ linkend="svn.advanced.props.special.ignore"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:global-ignores</literal></term>
+ <listitem>
+
+ <para>If present on a directory, the value is a list of
+ <emphasis>unversioned</emphasis> file patterns to be ignored
+ by <command>svn status</command> and other
+ subcommands. Unlike <literal>svn:ignore</literal>
+ these patterns apply to <emphasis>all</emphasis>
+ unversioned subtrees under the directory, not just the
+ directory's immediate file children. See
+ <xref
+ linkend="svn.advanced.props.special.ignore"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:keywords</literal></term>
+ <listitem>
+
+ <para>If present on a file, the value tells the client
+ how to expand particular keywords within the file.
+ See
+ <xref
+ linkend="svn.advanced.props.special.keywords"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:eol-style</literal></term>
+ <listitem>
+
+ <para>If present on a file, the value tells the client how
+ to manipulate the file's line-endings in the working
+ copy and in exported trees. See <xref
+ linkend="svn.advanced.props.special.eol-style"/> and
+ <xref linkend="svn.ref.svn.c.export" /> earlier in this
chapter.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:externals</literal></term>
+ <listitem>
+
+ <para>If present on a directory, the value is a multiline
+ list of other paths and URLs the client should check
+ out. See
+ <xref linkend="svn.advanced.externals"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:special</literal></term>
+ <listitem>
+
+ <para>If present on a file, indicates that the file is not
+ an ordinary file, but a symbolic link or other special
+ object.<footnote><para>As of this writing, symbolic
+ links are indeed the only <quote>special</quote>
+ objects. But there might be more in future releases of
+ Subversion.</para></footnote></para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:needs-lock</literal></term>
+ <listitem>
+
+ <para>If present on a file, tells the client to make the
+ file read-only in the working copy, as a reminder that
+ the file should be locked before editing begins. See
+ <xref
+ linkend="svn.advanced.locking.lock-communication"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:mergeinfo</literal></term>
+ <listitem>
+
+ <para>Used by Subversion to track merge data. See
+ <xref linkend="svn.branchmerge.basicmerging.mergeinfo"/>
+ for details, but you should never edit this property
+ unless you <emphasis>really</emphasis> know what you're
+ doing.</para>
+
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+ </refentry>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.properties.unversioned-props">
+ <refnamediv>
+ <refname>Unversioned (Revision) Properties</refname>
+ <refpurpose>Properties associated with global Subversion
+ revisions</refpurpose>
+ </refnamediv>
+
+ <refsect1 id="svn.ref.properties.unversioned-props.list">
+ <title>Properties</title>
+
+ <para>These are the unversioned properties that Subversion reserves
+ for its own use:</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><literal>svn:author</literal></term>
+ <listitem>
+
+ <para>If present, contains the authenticated username of
+ the person who created the revision. (If not present,
+ the revision was committed anonymously.)</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:autoversioned</literal></term>
+ <listitem>
+
+ <para>If present, the revision was created via the
+ autoversioning feature. See
+ <xref linkend="svn.webdav.autoversioning"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:date</literal></term>
+ <listitem>
+
+ <para>Contains the UTC time the revision was created, in
+ ISO 8601 format. The value comes from the
+ <emphasis>server</emphasis> machine's clock, not the
+ client's.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:log</literal></term>
+ <listitem>
+
+ <para>Contains the log message describing the
+ revision.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:rdump-lock</literal></term>
+ <listitem>
+
+ <para>Used to temporarily enforce mutually exclusive
+ access to the repository by <command>svnrdump
+ load</command>. This property is generally only
+ observed when such an operation is active—or when
+ an <command>svnrdump</command> command failed to cleanly
+ disconnect from the repository. (This property is only
+ relevant when it appears on revision 0.)</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:sync-currently-copying</literal></term>
+ <listitem>
+
+ <para>Contains the revision number from the source
+ repository which is currently being mirrored to this one
+ by the <command>svnsync</command> tool. (This property
+ is only relevant when it appears on revision 0.)</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:sync-from-uuid</literal></term>
+ <listitem>
+
+ <para>Contains the UUID of the repository of which this
+ repository has been initialized as a mirror by
+ the <command>svnsync</command> tool. (This property is
+ only relevant when it appears on revision 0.)</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:sync-from-url</literal></term>
+ <listitem>
+
+ <para>Contains the URL of the repository directory of
+ which this repository has been initialized as a mirror
+ by the <command>svnsync</command> tool. (This property
+ is only relevant when it appears on revision 0.)</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:sync-last-merged-rev</literal></term>
+ <listitem>
+
+ <para>Contains the revision of the source repository which
+ was most recently and successfully mirrored to this one.
+ (This property is only relevant when it appears on
+ revision 0.)</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:sync-lock</literal></term>
+ <listitem>
+
+ <para>Used to temporarily enforce mutually exclusive
+ access to the repository by <command>svnsync</command>
+ mirroring operations. This property is generally only
+ observed when such an operation is active—or when
+ an <command>svnsync</command> command failed to cleanly
+ disconnect from the repository. (This property is
+ only relevant when it appears on revision 0.)</para>
+
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+ </refentry>
+</reference>
+
+<!--
+local variables:
+sgml-parent-document: ("book.xml" "reference")
+end:
+-->
=======================================
--- /dev/null
+++ /trunk/en/book/ref-reposhooks.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,616 @@
+<reference id="svn.ref.reposhooks">
+ <title>Subversion Repository Hook Reference</title>
+
+ <!-- ### TODO: partintro -->
+
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.reposhooks.start-commit">
+
+ <indexterm>
+ <primary>repository</primary>
+ <secondary>hooks</secondary>
+ <tertiary>start-commit</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>start-commit</refname>
+ <refpurpose>Notification of the beginning of a commit.</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The start-commit hook is run before the commit
+ transaction is even created. It is typically used to
+ decide whether the user has commit privileges at all.</para>
+
+ <para>If the start-commit hook program returns a nonzero exit
+ value, the commit is stopped before the commit transaction
+ is even created, and anything printed to
<filename>stderr</filename> is
+ marshalled back to the client.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Input Parameter(s)</title>
+
+ <para>The command-line arguments passed to the hook program,
+ in order, are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Repository path</para>
+ </listitem>
+ <listitem>
+ <para>Authenticated username attempting the commit</para>
+ </listitem>
+ <listitem>
+ <para>Colon-separated list of
+ capabilities that a client passes to the server,
+ including <literal>depth</literal>,
+ <literal>mergeinfo</literal>, and
+ <literal>log-revprops</literal> (new in Subversion
1.5).</para>
+ </listitem>
+ </orderedlist>
+ </refsect1>
+
+ <refsect1>
+ <title>Common uses</title>
+
+ <para>Access control (e.g., temporarily lock out commits for
+ some reason).</para>
+
+ <para>A means to allow access only from clients that have
+ certain capabilities.</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.reposhooks.pre-commit">
+
+ <indexterm>
+ <primary>repository</primary>
+ <secondary>hooks</secondary>
+ <tertiary>pre-commit</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>pre-commit</refname>
+ <refpurpose>Notification just prior to commit
completion.</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The <literal>pre-commit</literal> hook is run just
+ before a commit transaction is promoted to a new revision.
+ Typically, this hook is used to protect against commits that
+ are disallowed due to content or location (e.g., your
+ site might require that all commits to a certain branch
+ include a ticket number from the bug tracker, or that the
+ incoming log message is nonempty).</para>
+
+ <para>If the <literal>pre-commit</literal> hook program
+ returns a nonzero exit value, the commit is aborted, the
+ commit transaction is removed, and anything printed to
+ <filename>stderr</filename> is marshalled back to the
client.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Input parameter(s)</title>
+
+ <para>The command-line arguments passed to the hook program,
+ in order, are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Repository path</para>
+ </listitem>
+ <listitem>
+ <para>Commit transaction name</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Additionally, Subversion passes any lock tokens provided
+ by the committing client to the hook script via standard
+ input. When present, these are formatted as a single line
+ containing the string <literal>LOCK-TOKENS:</literal>,
+ followed by additional lines—one per lock
+ token—which contain the lock token information. Each
+ lock token information line consists of the URI-escaped
+ repository filesystem path associated with the lock,
+ followed by the pipe (<literal>|</literal>) separator
+ character, and finally the lock token string.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Common uses</title>
+ <para>Change validation and control</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.reposhooks.post-commit">
+
+ <indexterm>
+ <primary>repository</primary>
+ <secondary>hooks</secondary>
+ <tertiary>post-commit</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>post-commit</refname>
+ <refpurpose>Notification of a successful commit.</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The <literal>post-commit</literal> hook is run after the
+ transaction is committed and a new revision is created. Most
+ people use this hook to send out descriptive emails about
+ the commit or to notify some other tool (such as an issue
+ tracker) that a commit has happened. Some configurations
+ also use this hook to trigger backup processes.</para>
+
+ <para>If the <literal>post-commit</literal> hook returns a
+ nonzero exit status, the commit <emphasis>will
+ not</emphasis> be aborted since it has already
+ completed. However, anything that the hook printed
+ to <filename>stderr</filename> will be marshalled back to the
+ client, making it easier to diagnose hook failures.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Input parameter(s)</title>
+
+ <para>The command-line arguments passed to the hook program,
+ in order, are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Repository path</para>
+ </listitem>
+ <listitem>
+ <para>Revision number created by the commit</para>
+ </listitem>
+ </orderedlist>
+ </refsect1>
+
+ <refsect1>
+ <title>Common uses</title>
+ <para>Commit notification; tool integration</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.reposhooks.pre-revprop-change">
+
+ <indexterm>
+ <primary>repository</primary>
+ <secondary>hooks</secondary>
+ <tertiary>pre-revprop-change</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>pre-revprop-change</refname>
+ <refpurpose>Notification of a revision property change
+ attempt.</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The <literal>pre-revprop-change</literal> hook is run
+ immediately prior to the modification of a revision property
+ when performed outside the scope of a normal commit. Unlike
+ the other hooks, the default state of this one is to deny
+ the proposed action. The hook must actually exist and
+ return a zero exit value before a revision property
+ modification can happen.</para>
+
+ <para>If the <literal>pre-revprop-change</literal> hook
+ doesn't exist, isn't executable, or returns a nonzero exit
+ value, no change to the property will be made, and anything
+ printed to <filename>stderr</filename> is marshalled back to the
client.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Input parameter(s)</title>
+
+ <para>The command-line arguments passed to the hook program,
+ in order, are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Repository path</para>
+ </listitem>
+ <listitem>
+ <para>Revision whose property is about to be modified</para>
+ </listitem>
+ <listitem>
+ <para>Authenticated username attempting the property
change</para>
+ </listitem>
+ <listitem>
+ <para>Name of the property changed</para>
+ </listitem>
+ <listitem>
+ <para>Change description: <literal>A</literal> (added),
+ <literal>D</literal> (deleted), or <literal>M</literal>
+ (modified)</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Additionally, Subversion passes the intended new value
+ of the property to the hook program via standard
+ input.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Common uses</title>
+ <para>Access control; change validation and control</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.reposhooks.post-revprop-change">
+
+ <indexterm>
+ <primary>repository</primary>
+ <secondary>hooks</secondary>
+ <tertiary>post-revprop-change</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>post-revprop-change</refname>
+ <refpurpose>Notification of a successful revision property
+ change.</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The <literal>post-revprop-change</literal> hook is run
+ immediately after the modification of a revision property
+ when performed outside the scope of a normal commit. As you can
+ derive from the description of its counterpart, the
+ <literal>pre-revprop-change</literal> hook, this hook will
+ not run at all unless
+ the <literal>pre-revprop-change</literal> hook is
+ implemented. It is typically used to send email
+ notification of the property change.</para>
+
+ <para>If the <literal>post-revprop-change</literal> hook returns a
+ nonzero exit status, the change <emphasis>will
+ not</emphasis> be aborted since it has already
+ completed. However, anything that the hook printed
+ to <filename>stderr</filename> will be marshalled back to the
+ client, making it easier to diagnose hook failures.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Input parameter(s)</title>
+
+ <para>The command-line arguments passed to the hook program,
+ in order, are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Repository path</para>
+ </listitem>
+ <listitem>
+ <para>Revision whose property was modified</para>
+ </listitem>
+ <listitem>
+ <para>Authenticated username of the person making the
change</para>
+ </listitem>
+ <listitem>
+ <para>Name of the property changed</para>
+ </listitem>
+ <listitem>
+ <para>Change description: <literal>A</literal> (added),
+ <literal>D</literal> (deleted), or <literal>M</literal>
+ (modified)</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Additionally, Subversion passes to the hook program, via
+ standard input, the previous value of the property.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Common uses</title>
+ <para>Property change notification</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.reposhooks.pre-lock">
+
+ <indexterm>
+ <primary>repository</primary>
+ <secondary>hooks</secondary>
+ <tertiary>pre-lock</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>pre-lock</refname>
+ <refpurpose>Notification of a path lock attempt.</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The <literal>pre-lock</literal> hook runs whenever
+ someone attempts to lock a path. It can be used to prevent
+ locks altogether or to create a more complex policy
+ specifying exactly which users are allowed to lock
+ particular paths. If the hook notices a preexisting lock,
+ it can also decide whether a user is allowed
+ to <quote>steal</quote> the existing lock.</para>
+
+ <para>If the <literal>pre-lock</literal> hook program returns
+ a nonzero exit value, the lock action is aborted and
+ anything printed to <filename>stderr</filename> is
+ marshalled back to the client.</para>
+
+ <para>The hook program may optionally dictate the lock token
+ which will be assigned to the lock by printing the desired
+ lock token to standard output. Because of this,
+ implementations of this hook should carefully avoid
+ unexpected output sent to standard output.</para>
+
+ <warning>
+ <para>If the <literal>pre-lock</literal> script takes
+ advantage of lock token dictation feature, the
+ responsibility of generating a <emphasis>unique</emphasis>
+ lock token falls to the script itself. Failure to
+ generate unique lock tokens may result in
+ undefined—and very likely,
+ undesired—behavior.</para>
+ </warning>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Input parameter(s)</title>
+
+ <para>The command-line arguments passed to the hook program,
+ in order, are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Repository path</para>
+ </listitem>
+ <listitem>
+ <para>Versioned path that is to be locked</para>
+ </listitem>
+ <listitem>
+ <para>Authenticated username of the person attempting the
+ lock</para>
+ </listitem>
+ <listitem>
+ <para>Comment provided when the lock was created</para>
+ </listitem>
+ <listitem>
+ <para><literal>1</literal> if the user is attempting to
+ steal an existing lock; <literal>0</literal>
+ otherwise</para>
+ </listitem>
+ </orderedlist>
+ </refsect1>
+
+ <refsect1>
+ <title>Common uses</title>
+ <para>Access control</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.reposhooks.post-lock">
+
+ <indexterm>
+ <primary>repository</primary>
+ <secondary>hooks</secondary>
+ <tertiary>post-lock</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>post-lock</refname>
+ <refpurpose>Notification of a successful path lock.</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The <literal>post-lock</literal> hook runs after one or
+ more paths have been locked. It is typically used to send
+ email notification of the lock event.</para>
+
+ <para>If the <literal>post-lock</literal> hook returns a
+ nonzero exit status, the lock <emphasis>will
+ not</emphasis> be aborted since it has already
+ completed. However, anything that the hook printed
+ to <filename>stderr</filename> will be marshalled back to the
+ client, making it easier to diagnose hook failures.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Input parameter(s)</title>
+
+ <para>The command-line arguments passed to the hook program,
+ in order, are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Repository path</para>
+ </listitem>
+ <listitem>
+ <para>Authenticated username of the person who locked the
+ paths</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Additionally, the list of paths locked is passed to the
+ hook program via standard input, one path per line.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Common uses</title>
+ <para>Lock notification</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.reposhooks.pre-unlock">
+
+ <indexterm>
+ <primary>repository</primary>
+ <secondary>hooks</secondary>
+ <tertiary>pre-unlock</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>pre-unlock</refname>
+ <refpurpose>Notification of a path unlock attempt.</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The <literal>pre-unlock</literal> hook runs whenever
+ someone attempts to remove a lock on a file. It can be used
+ to create policies that specify which users are allowed to
+ unlock particular paths. It's particularly important for
+ determining policies about lock breakage. If user A locks a
+ file, is user B allowed to break the lock? What if the lock
+ is more than a week old? These sorts of things can be
+ decided and enforced by the hook.</para>
+
+ <para>If the <literal>pre-unlock</literal> hook program
+ returns a nonzero exit value, the unlock action is aborted
+ and anything printed to <filename>stderr</filename> is
marshalled back to the
+ client.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Input parameter(s)</title>
+
+ <para>The command-line arguments passed to the hook program,
+ in order, are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Repository path</para>
+ </listitem>
+ <listitem>
+ <para>Versioned path which is to be unlocked</para>
+ </listitem>
+ <listitem>
+ <para>Authenticated username of the person attempting the
+ unlock</para>
+ </listitem>
+ <listitem>
+ <para>Lock token associated with the lock which is to be
+ removed</para>
+ </listitem>
+ <listitem>
+ <para><literal>1</literal> if the user is attempting to
+ break the lock; <literal>0</literal> otherwise</para>
+ </listitem>
+ </orderedlist>
+ </refsect1>
+
+ <refsect1>
+ <title>Common uses</title>
+ <para>Access control</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.reposhooks.post-unlock">
+
+ <indexterm>
+ <primary>repository</primary>
+ <secondary>hooks</secondary>
+ <tertiary>post-unlock</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>post-unlock</refname>
+ <refpurpose>Notification of a successful path unlock.</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>The <literal>post-unlock</literal> hook runs after one
+ or more paths have been unlocked. It is typically used to
+ send email notification of the unlock event.</para>
+
+ <para>If the <literal>post-unlock</literal> hook returns a
+ nonzero exit status, the unlock <emphasis>will
+ not</emphasis> be aborted since it has already
+ completed. However, anything that the hook printed
+ to <filename>stderr</filename> will be marshalled back to the
+ client, making it easier to diagnose hook failures.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Input parameter(s)</title>
+
+ <para>The command-line arguments passed to the hook program,
+ in order, are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Repository path</para>
+ </listitem>
+ <listitem>
+ <para>Authenticated username of the person who unlocked the
+ paths</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Additionally, the list of paths unlocked is passed to the
+ hook program via standard input, one path per line.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Common uses</title>
+ <para>Unlock notification</para>
+ </refsect1>
+
+ </refentry>
+
+</reference>
+
+<!--
+local variables:
+sgml-parent-document: ("book.xml" "reference")
+end:
+-->
=======================================
--- /dev/null
+++ /trunk/en/book/ref-svn.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,6429 @@
+<reference id="svn.ref.svn">
+ <title>svn Reference—Subversion Command-Line Client</title>
+
+ <partintro>
+ <para><command>svn</command> is the official command-line client
+ of Subversion. Its functionality is offered via a collection of
+ task-specific subcommands, most of which accept a number of
+ options for fine-grained control of the program's
+ behavior.</para>
+
+ <para>When using the <command>svn</command> program, subcommands
+ and other non-option arguments must appear in a specified order
+ on the command line. Options, on the other hand, may appear
+ anywhere on the command line (after the program name, of
+ course), and in general, their order is irrelevant. For
+ example, all of the following are valid ways to use <command>svn
+ status</command>, and are interpreted in exactly the same
+ way:</para>
+
+ <informalexample>
+ <screen>
+$ svn -vq status myfile
+$ svn status -v -q myfile
+$ svn -q status -v myfile
+$ svn status -vq myfile
+$ svn status myfile -qv
+</screen>
+ </informalexample>
+
+ <para>The following sections describe each of the various
+ subcommands and options provided by the <command>svn</command>
+ command-line client program, including some examples of each
+ subcommand's typical uses.</para>
+
+ <para>While Subversion has different options for its
+ subcommands, all options exist in a single
+ namespace—that is, each option is guaranteed to mean the
+ roughly same thing regardless of the subcommand you use it
+ with. For example, <option>--verbose</option>
+ (<option>-v</option>) always means <quote>verbose
+ output,</quote> regardless of the subcommand you use it
+ with.</para>
+
+ <para>The <command>svn</command> command-line client usually
+ exits quickly with an error if you pass it an option which
+ does not apply to the specified subcommand. But as of
+ Subversion 1.5, several of the options which apply to
+ all—or nearly all—of the subcommands have been
+ deemed acceptable by all subcommands, even if they have no
+ effect on some of them. (This change was made primarily to
+ improve the client's ability to called from custom wrapping
+ scripts.) These options appear grouped together in the
+ command-line client's usage messages as global options, as can
+ be seen in the following bit of output:</para>
+
+ <informalexample>
+ <screen>
+$ svn help upgrade
+upgrade: Upgrade the metadata storage format for a working copy.
+usage: upgrade [WCPATH...]
+
+ Local modifications are preserved.
+
+Valid options:
+ -q [--quiet] : print nothing, or only summary information
+
+Global options:
+ --username ARG : specify a username ARG
+ --password ARG : specify a password ARG
+ --no-auth-cache : do not cache authentication tokens
+ --non-interactive : do no interactive prompting
+ --trust-server-cert : accept SSL server certificates from unknown
+ certificate authorities without prompting
(but only
+ with '--non-interactive')
+ --config-dir ARG : read user configuration files from directory
ARG
+ --config-option ARG : set user configuration option in the format:
+ FILE:SECTION:OPTION=[VALUE]
+ For example:
+ servers:global:http-library=serf
+$
+</screen>
+ </informalexample>
+
+ <para><command>svn</command> subcommands recognize the following
+ global options:</para>
+
+ <variablelist id="svn.ref.svn.sw">
+
+ <varlistentry id="svn.ref.svn.sw.config_dir">
+ <term><option>--config-dir</option>
<replaceable>DIR</replaceable></term>
+ <listitem>
+ <para>Instructs Subversion to read configuration
+ information from the specified directory instead of the
+ default location (<filename>.subversion</filename> in
+ the user's home directory).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.config_option">
+ <term><option>--config-option</option>
<replaceable>CONFSPEC</replaceable></term>
+ <listitem>
+ <para>Sets, for the duration of the command, the value of
+ a runtime configuration
+ option. <replaceable>CONFSPEC</replaceable> is a string
+ which specifies the configuration option namespace, name
+ and value that you'd like to assign, formatted as
+
<replaceable>FILE</replaceable>:<replaceable>SECTION</replaceable>:<replaceable>OPTION</replaceable>=[<replaceable>VALUE</replaceable>].
+ In this syntax, <replaceable>FILE</replaceable>
+ and <replaceable>SECTION</replaceable> are the runtime
+ configuration file (either <literal>config</literal>
+ or <literal>servers</literal>) and the section thereof,
+ respectively, which contain the option whose value you
+ wish to change. <replaceable>OPTION</replaceable> is,
+ of course, the option itself,
+ and <replaceable>VALUE</replaceable> the value (if any)
+ you wish to assign to the option. For example, to
+ temporarily disable the use of the automatic property
+ setting feature,
+ use
<option>--config-option=config:miscellany:enable-auto-props=no</option>.
+ You can use this option multiple times to change
+ multiple option values simultaneously.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.no_auth_cache">
+ <term><option>--no-auth-cache</option></term>
+ <listitem>
+ <para>Prevents caching of authentication information
+ (e.g., username and password) in the Subversion
+ runtime configuration directories.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.non_interactive">
+ <term><option>--non-interactive</option></term>
+ <listitem>
+ <para>Disables all interactive prompting. Some examples
+ of interactive prompting include requests for
+ authentication credentials and conflict resolution
+ decisions. This is useful if you're running Subversion
+ inside an automated script and it's more appropriate
+ to have Subversion fail than to prompt for more
+ information.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.password">
+ <term><option>--password</option>
<replaceable>PASSWD</replaceable></term>
+ <listitem>
+ <para>Specifies the password to use when authenticating
+ against a Subversion server. If not provided, or if
+ incorrect, Subversion will prompt you for this
+ information as needed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.trust_server_cert">
+ <term><option>--trust-server-cert</option></term>
+ <listitem>
+ <para>When used with <option>--non-interactive</option>,
+ instructs Subversion to accept SSL server certificates
+ issued by unknown certificate authorities without first
+ prompting the user. For security's sake, you should use
+ this option only when the integrity of the remote server
+ and the network path between it and your client is known
+ to be trustworthy.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.username">
+ <term><option>--username</option>
<replaceable>NAME</replaceable></term>
+ <listitem>
+ <para>Specifies the username to use when authenticating
+ against a Subversion server. If not provided, or if
+ incorrect, Subversion will prompt you for this
+ information as needed.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <para>The rest of the options apply and are accepted by only a
+ subset of the subcommand. They are as follows:</para>
+
+ <variablelist>
+
+ <varlistentry id="svn.ref.svn.sw.accept">
+ <term><option>--accept</option>
<replaceable>ACTION</replaceable></term>
+ <listitem>
+ <para>Specifies an action for automatic conflict
+ resolution, disabling the interactive prompts which ask
+ the user how to handle each conflict as it is noticed.
+ Though which of the specific actions are applicable
+ differs depending on which subcommand is in use,
+ Subversion supports the following long (and short)
+ values for <replaceable>ACTION</replaceable>:</para>
+ <variablelist>
+ <varlistentry>
+ <term><literal>postpone</literal>
+ (<literal>p</literal>)</term>
+ <listitem>
+ <para>Take no resolution action at all and instead
+ allow the conflicts to be recorded for future
+ resolution.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>edit</literal>
+ (<literal>e</literal>)</term>
+ <listitem>
+ <para>Open each conflicted file in a text editor for
+ manual resolution of line-based conflicts.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>launch</literal>
+ (<literal>l</literal>)</term>
+ <listitem>
+ <para>Launch an interactive merge conflict
+ resolution tool for each conflicted file.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>base</literal></term>
+ <listitem>
+ <para>Choose the file that was the (unmodified)
+ <literal>BASE</literal> revision before you tried
+ to integrate changes from the server into
+ your working copy.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>working</literal></term>
+ <listitem>
+ <para>Assuming that you've manually handled the
+ conflict resolution, choose the version of the file
+ as it currently stands in your working copy.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>mine-full</literal>
+ (<literal>mf</literal>)</term>
+ <listitem>
+ <para>Resolve conflicted files by preserving all
+ local modifications and discarding all changes
+ fetched from the server during the operation which
+ caused the conflict.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>theirs-full</literal>
+ (<literal>tf</literal>)</term>
+ <listitem>
+ <para>Resolve conflicted files by discarding all
+ local modifications and integrating all changes
+ fetched from the server during the operation which
+ caused the conflict.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>mine-conflict</literal>
+ (<literal>mc</literal>)</term>
+ <listitem>
+ <para>Resolve conflicted files by preferring local
+ modifications over the changes fetched from the
+ server in conflicting regions of each file's
+ content.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>theirs-conflict</literal>
+ (<literal>tc</literal>)</term>
+ <listitem>
+ <para>Resolve conflicted files by preferring the
+ changes fetched from the server over local
+ modifications in conflicting regions of each file's
+ content.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>Consult the output of <command>svn help
+ <replaceable>SUBCOMMAND</replaceable></command> to see
+ exactly which actions are supported by the specific
+ subcommand of interest.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.allow_mixed_revisions">
+ <term><option>--allow-mixed-revisions</option></term>
+ <listitem>
+ <para>Disables the verification—performed by default
+ by <command>svn merge</command> as of Subversion
+ 1.7—that the target of a merge operation and all
+ of its children are at a uniform revision. While
+ merging into a single-revision working copy target is
+ the recommended best practice, this option may be used
+ to permit merges into mixed-revision working copies as
+ necessary.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.auto_props">
+ <term><option>--auto-props</option></term>
+ <listitem>
+ <para>Enables automatic property assignment (per runtime
+ configuration rules), overriding the
+ <literal>enable-auto-props</literal> runtime
+ configuration directive.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.change">
+ <term><option>--change</option> (<option>-c</option>)
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Perform the requested operation using a specific
+ <quote>change</quote>. Generally speaking, this option
+ is syntactic sugar for <userinput>-r
+
<replaceable>ARG-1</replaceable>:<replaceable>ARG</replaceable></userinput>.
+ Some subcommands permit a comma-separated list of
+ revision number arguments (e.g., <userinput>-c
+
<replaceable>ARG1</replaceable>,<replaceable>ARG2</replaceable>,<replaceable>ARG3</replaceable></userinput>).
+ Alternatively, you can provide two arguments separated
+ by a dash (as
+ in <userinput>-c
<replaceable>ARG1</replaceable>-<replaceable>ARG2</replaceable></userinput>)
+ to identify the range of revisions
+ between <replaceable>ARG1</replaceable>
+ and <replaceable>ARG2</replaceable>, inclusive.
+ Finally, if the revision argument is negated, the
+ implied revision range is reversed: <userinput>-c
+ -45</userinput> is equivalent to <userinput>-r
+ 45:44</userinput>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.changelist">
+ <term><option>--changelist</option> (<option>--cl</option>)
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Instructs Subversion to operate only on members of the
changelist named
+ <replaceable>ARG</replaceable>. You can use this option
+ multiple times to specify sets of changelists.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.depth">
+ <term><option>--depth</option>
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Instructs Subversion to limit the scope of an
+ operation to a particular tree
+ depth. <replaceable>ARG</replaceable> is one of
+ <literal>empty</literal> (only the target
+ itself), <literal>files</literal> (the target and any
+ immediate file children thereof),
+ <literal>immediates</literal> (the target and any
+ immediate children thereof), or
+ <literal>infinity</literal> (the target and all of its
+ descendants—full recursion).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.diff">
+ <term><option>--diff</option></term>
+ <listitem>
+ <para>Enables a special output mode for <command>svn
+ log</command> which includes a difference report (a
+ la <command>svn diff</command>) as part of each
+ revision's information.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.diff_cmd">
+ <term><option>--diff-cmd</option>
<replaceable>CMD</replaceable></term>
+ <listitem>
+ <para>Specifies an external program to use to show
+ differences between files. When <command>svn
+ diff</command> is invoked without this option, it uses
+ Subversion's internal differencing engine, which provides
+ unified diffs by default. If you want to use an
+ external differencing program, use
<option>--diff-cmd</option>.
+ You can then pass options to the specified program using the
+ <option>--extensions</option> (<option>-x</option>)
+ option.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.diff3_cmd">
+ <term><option>--diff3-cmd</option>
<replaceable>CMD</replaceable></term>
+ <listitem>
+ <para>Specifies an external 3-way differencing program
+ (used to merge line-based changes into files).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.dry_run">
+ <term><option>--dry-run</option></term>
+ <listitem>
+ <para>Goes through all the motions of running a command,
+ but makes no actual changes—either on disk or in
+ the repository.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.editor_cmd">
+ <term><option>--editor-cmd</option>
<replaceable>CMD</replaceable></term>
+ <listitem>
+ <para>Specifies an external program to use to edit a log
message
+ or a property value. See the <literal>editor-cmd</literal>
+ section in <xref
linkend="svn.advanced.confarea.opts.config"/>
+ for ways to specify a default editor.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.encoding">
+ <term><option>--encoding</option>
<replaceable>ENC</replaceable></term>
+ <listitem>
+ <para>Tells Subversion that your commit message is
+ composed using the character encoding provided. The
+ default character encoding is derived from your
+ operating system's native locale; use this option if
+ your commit message is composed using any other
+ encoding.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.extensions">
+ <term><option>--extensions</option> (<option>-x</option>)
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Specifies customizations which Subversion should
+ make when performing difference calculations. Valid
+ extensions include:</para>
+ <variablelist>
+ <varlistentry>
+ <term><option>--ignore-space-change</option>
(<option>-b</option>)</term>
+ <listitem>
+ <para>Ignore changes in the amount of white space.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--ignore-all-space</option>
(<option>-w</option>)</term>
+ <listitem>
+ <para>Ignore all white space.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--ignore-eol-style</option></term>
+ <listitem>
+ <para>Ignore changes in EOL (end-of-line) style.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--show-c-function</option>
(<option>-p</option>)</term>
+ <listitem>
+ <para>Show C function names in the diff output.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--unified</option>
(<option>-u</option>)</term>
+ <listitem>
+ <para>Show three lines of unified diff context.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>The default value of <replaceable>ARG</replaceable>
+ is <literal>-u</literal>. If you wish to pass multiple
+ arguments, you must enclose all of them in quotes.</para>
+ <para>Note that when Subversion is configured to invoke an
+ external diff command, the value of
+ the <option>--extension</option> (<option>-x</option>)
+ option isn't restricted to the previously mentioned
+ options, but may be <emphasis>any</emphasis> additional
+ arguments which Subversion should pass to that
command.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.file">
+ <term><option>--file</option> (<option>-F</option>)
<replaceable>FILENAME</replaceable></term>
+ <listitem>
+ <para>Uses the contents of the named file for the
+ specified subcommand. Different subcommands do
+ different things with this content. For example,
+ <command>svn commit</command> uses the content as a
+ commit log message, whereas <command>svn
+ propset</command> uses it as a property value.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.force">
+ <term><option>--force</option></term>
+ <listitem>
+ <para>Forces a particular command or operation to run.
+ Subversion will prevent you from performing some
+ operations in normal usage, but you can pass this option
+ to tell Subversion <quote>I know what I'm doing as well
+ as the possible repercussions of doing it, so let me at
+ 'em.</quote> This option is the programmatic equivalent
+ of doing your own electrical work with the power
+ on—if you don't know what you're doing, you're
+ likely to get a nasty shock.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.force_log">
+ <term><option>--force-log</option></term>
+ <listitem>
+ <para>Forces a suspicious parameter passed to the
+ <option>--message</option> (<option>-m</option>) or
+ <option>--file</option> (<option>-F</option>) option to
+ be accepted as valid. By default, Subversion will
+ produce an error if parameters to these options look
+ like they might instead be targets of the subcommand.
+ For example, if you pass a versioned file's path to the
+ <option>--file</option> (<option>-F</option>) option,
+ Subversion will assume you've made a mistake, that the
+ path was instead intended as the target of the
+ operation, and that you simply failed to provide some
+ other—unversioned—file as the source of your
+ log message. To assert your intent and override these
+ types of errors, pass the <option>--force-log</option>
+ option to subcommands that accept log messages.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.git">
+ <term><option>--git</option></term>
+ <listitem>
+ <para>Enables a special output mode for <command>svn
+ diff</command> designed for cross-compatibility with the
+ popular Git distributed version control system.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.help">
+ <term><option>--help</option> (<option>-h</option>,
<option>-?</option>)</term>
+ <listitem>
+ <para>If used with one or more subcommands, shows the
+ built-in help text for each. If used alone, it displays
+ the general client help text.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.ignore_ancestry">
+ <term><option>--ignore-ancestry</option></term>
+ <listitem>
+ <para>Tells Subversion to ignore ancestry when calculating
+ differences (rely on path contents alone). Also disables
+ <xref linkend="svn.branchmerge.basicmerging.mergetracking"/>
+ when used with the <command>svn merge</command> subcommand.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.ignore_externals">
+ <term><option>--ignore-externals</option></term>
+ <listitem>
+ <para>Tells Subversion to ignore externals definitions and
+ the external working copies managed by them.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.ignore_keywords">
+ <term><option>--ignore-keywords</option></term>
+ <listitem>
+ <para>Disables keyword expansion.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.ignore_whitespace">
+ <term><option>--ignore-whitespace</option></term>
+ <listitem>
+ <para>Instructs <command>svn patch</command> to ignore
+ whitespace when attempting to identify patch
+ context.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.incremental">
+ <term><option>--incremental</option></term>
+ <listitem>
+ <para>Prints output in a format suitable for
+ concatenation to prior similar output.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.internal_diff">
+ <term><option>--internal-diff</option></term>
+ <listitem>
+ <para>Instructs Subversion to use its built-in
+ differencing engine despite any external differencing
+ mechanism that may be specified for use in the user's
+ runtime configuration.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.keep_changelists">
+ <term><option>--keep-changelists</option></term>
+ <listitem>
+ <para>Tells Subversion not to remove the changelist assigments
+ from working copy items after committing.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.keep_local">
+ <term><option>--keep-local</option></term>
+ <listitem>
+ <para>Keeps the local copy of a file or directory (used
+ with the <command>svn delete</command> command).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.limit">
+ <term><option>--limit</option> (<option>-l</option>)
<replaceable>NUM</replaceable></term>
+ <listitem>
+ <para>Shows only the first <replaceable>NUM</replaceable>
+ log messages.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.message">
+ <term><option>--message</option> (<option>-m</option>)
<replaceable>MESSAGE</replaceable></term>
+ <listitem>
+ <para>Indicates that you will specify either a log message
+ or a lock comment on the command line, following this
+ option. For example:</para>
+
+ <informalexample>
+ <screen>
+$ svn commit -m "They don't make Sunday."
+</screen>
+ </informalexample>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.native_eol">
+ <term><option>--native-eol</option>
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Causes <command>svn export</command> to use a
+ specific end-of-line sequence as if it was the native
+ sequence for the client platform.
+ <replaceable>ARG</replaceable> may be one
+ of <literal>CR</literal>, <literal>LF</literal>,
+ or <literal>CRLF</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.new">
+ <term><option>--new</option>
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Uses <replaceable>ARG</replaceable> as the newer
+ target (for use with <command>svn diff</command>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.no_auto_props">
+ <term><option>--no-auto-props</option></term>
+ <listitem>
+ <para>Disables automatic property setting, overriding the
+ <literal>enable-auto-props</literal> runtime
+ configuration directive.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.no_diff_deleted">
+ <term><option>--no-diff-deleted</option></term>
+ <listitem>
+ <para>Prevents Subversion from printing differences for
+ deleted files. The default behavior when you remove a
+ file is for <command>svn diff</command> to print the
+ same differences that you would see if you had kept
+ the file but removed all of its content.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.no_ignore">
+ <term><option>--no-ignore</option></term>
+ <listitem>
+ <para>Shows files in the status listing or adds/imports files
+ that would normally be omitted since they match a pattern
+ in the <literal>global-ignores</literal> configuration
+ option or the <literal>svn:ignore</literal> or
+ <literal>svn:global-ignores</literal>properties. See <xref
+ linkend="svn.advanced.confarea.opts.config"/> and <xref
+ linkend="svn.advanced.props.special.ignore"/> for more
+ information.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.no_unlock">
+ <term><option>--no-unlock</option></term>
+ <listitem>
+ <para>Tells Subversion not to automatically unlock files.
+ (The default commit behavior is to unlock all files
+ listed as part of the commit.) See
+ <xref linkend="svn.advanced.locking"/> for more
+ information.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.non_recursive">
+ <term><option>--non-recursive</option>
(<option>-N</option>)</term>
+ <listitem>
+ <para><emphasis>Deprecated</emphasis>. Stops a subcommand
+ from recursing into subdirectories. Most subcommands
+ recurse by default, but some do not. Users should avoid
+ this option and use the more precise <option>--depth</option>
+ option instead. For most subcommands, specifying
+ <option>--non-recursive</option> produces behavior which
+ is the same as if you'd specified
+ <option>--depth=files</option>, but there are exceptions:
+ non-recursive <command>svn status</command> operates at the
+ <literal>immediates</literal> depth, and the non-recursive
+ forms of <command>svn revert</command>,
+ <command>svn add</command>, and <command>svn commit</command>
+ operate at an <literal>empty</literal> depth.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.notice_ancestry">
+ <term><option>--notice-ancestry</option></term>
+ <listitem>
+ <para>Pays attention to ancestry when calculating
+ differences.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.old">
+ <term><option>--old</option>
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Uses <replaceable>ARG</replaceable> as the older
+ target (for use with <command>svn diff</command>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.parents">
+ <term><option>--parents</option></term>
+ <listitem>
+ <para>Creates and adds nonexistent or nonversioned parent
+ subdirectories to the working copy or repository as part
+ of an operation. This is useful for automatically
+ creating multiple subdirectories where none currently
+ exist. If performed on a URL, all the directories will
+ be created in a single commit.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.quiet">
+ <term><option>--quiet</option> (<option>-q</option>)</term>
+ <listitem>
+ <para>Requests that the client print only essential
+ information while performing an operation.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.record_only">
+ <term><option>--record-only</option></term>
+ <listitem>
+ <para>Enables a special mode of <command>svn
+ merge</command> in which the specified merge operation is
+ recorded in the local merge tracking information, but is
+ not actually performed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.recursive">
+ <term><option>--recursive</option> (<option>-R</option>)</term>
+ <listitem>
+ <para>Makes a subcommand recurse into subdirectories.
+ (Most subcommands recurse by default.)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.reintegrate">
+ <term><option>--reintegrate</option></term>
+ <listitem>
+ <para>Deprecated. Used with the <command>svn merge</command>
+ subcommand to merge changes from a feature branch back into
+ the feature branch's ancestor branch. Since Subversion 1.8
+ the <command>svn merge</command> subcommand automatically
+ detects this scenario and performs the appropriate merge.
+ See
+ <xref linkend="svn.branchmerge.basicmerging.reintegrate"/>
+ for details.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.relocate">
+ <term><option>--relocate</option></term>
+ <listitem>
+ <para>Deprecated. When used with the <command>svn
+ switch</command> subcommand, changes the location of the
+ repository that your working copy references. The
+ preferred approach as of Subversion 1.7, however, is to
+ use the <command>svn relocate</command> subcommand. See
+ <xref linkend="svn.ref.svn.c.relocate" /> for more
+ details and an example.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.remove">
+ <term><option>--remove</option></term>
+ <listitem>
+ <para>Used with <command>svn changelist</command> to
+ disassociate—rather than associate (which is the
+ default operation)—the target(s) from a
+ changelist.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.reverse_diff">
+ <term><option>--reverse-diff</option></term>
+ <listitem>
+ <para>Causes <command>svn patch</command> to interpret the
+ input patch instructions in reverse—treating added
+ lines as removed ones and vice-versa.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.revision">
+ <term><option>--revision</option> (<option>-r</option>)
<replaceable>REV</replaceable></term>
+ <listitem>
+ <para>Specifies a revision (or range of revisions) on with
+ which to operate. You can provide revision numbers,
+ keywords, or dates (in curly braces) as arguments to the
+ revision option. If you wish to offer a range of
+ revisions, you can provide two revisions separated by a
+ colon. For example:</para>
+
+ <informalexample>
+ <screen>
+$ svn log -r 1729
+$ svn log -r 1729:HEAD
+$ svn log -r 1729:1744
+$ svn log -r {2001-12-04}:{2002-02-17}
+$ svn log -r 1729:{2002-02-17}
+</screen>
+ </informalexample>
+
+ <para>See <xref linkend="svn.tour.revs.keywords"/> for more
+ information.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.revprop">
+ <term><option>--revprop</option></term>
+ <listitem>
+ <para>Operates on a revision property instead of a
+ property specific to a file or directory. This option
+ requires that you also pass a revision with the
+ <option>--revision</option> (<option>-r</option>)
+ option.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.set_depth">
+ <term><option>--set-depth</option>
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Sets the sticky depth on a directory in a working
+ copy to one of <literal>exclude</literal>,
<literal>empty</literal>,
+ <literal>files</literal>, <literal>immediates</literal>,
+ or <literal>infinity</literal>. For detailed coverage
+ of what these mean and how to use this option, see
+ <xref linkend="svn.advanced.sparsedirs" />.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.show_copies_as_adds">
+ <term><option>--show-copies-as-adds</option></term>
+ <listitem>
+ <para>Enables a special output mode for <command>svn
+ diff</command> in which the content difference for a
+ file created via a copy operation appears as it would
+ for a brand new file (with each line therein appearing
+ as an addition to an empty file) rather than as a delta
+ against the original file from which the copy was
+ created.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.show_inherited_props">
+ <term><option>--show-inherited-props</option></term>
+ <listitem>
+ <para>Causes <command>svn propget</command> and <command>
+ svn proplist</command> to display the versioned properties
+ inherited by the target file or directory.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.show_revs">
+ <term><option>--show-revs</option>
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Used to make <command>svn mergeinfo</command>
+ display certain classes of merge tracking
+ information. <replaceable>ARG</replaceable> may be
+ either <literal>merged</literal>
+ or <literal>eligible</literal>, indicating a desire to
+ see revisions either already merged or eligible for future
+ merge from the specified source URL, respectively.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.show_updates">
+ <term><option>--show-updates</option>
(<option>-u</option>)</term>
+ <listitem>
+ <para>Causes the client to display information about
+ which files in your working copy are out of date.
+ This doesn't actually update any of your
+ files—it just shows you which files will be
+ updated if you then use <command>svn update</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.stop_on_copy">
+ <term><option>--stop-on-copy</option></term>
+ <listitem>
+ <para>Causes a Subversion subcommand that traverses
+ the history of a versioned resource to stop harvesting
+ that historical information when a copy—that is, a
+ location in history where that resource was copied from
+ another location in the repository—is
+ encountered.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.strict">
+ <term><option>--strict</option></term>
+ <listitem>
+ <para>Causes Subversion to use strict semantics, a notion
+ that is rather vague unless talking about specific
+ subcommands (namely, <command>svn propget</command>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.strip">
+ <term><option>--strip</option>
<replaceable>NUM</replaceable></term>
+ <listitem>
+ <para>Used by <command>svn patch</command> to
+ ignore <replaceable>NUM</replaceable> leading path
+ components found on paths specified in the patch input
+ file.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.summarize">
+ <term><option>--summarize</option></term>
+ <listitem>
+ <para>Display only high-level summary notifications about
+ the operation instead of its detailed output.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.targets">
+ <term><option>--targets</option>
<replaceable>FILENAME</replaceable></term>
+ <listitem>
+ <para>Tells Subversion to read additional target paths for
+ the operation from <replaceable>FILENAME</replaceable>.
+ <replaceable>FILENAME</replaceable> should contain one
+ path per line, with each path expected to use the same
+ encoding and formatting that it would if you had
+ specified it directly as an argument on the command
+ line.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.use_merge_history">
+ <term><option>--use-merge-history</option>
(<option>-g</option>)</term>
+ <listitem>
+ <para>Uses or displays additional information from merge
+ history.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.verbose">
+ <term><option>--verbose</option> (<option>-v</option>)</term>
+ <listitem>
+ <para>Requests that the client print out as much
+ information as it can while running any subcommand.
+ This may result in Subversion printing out additional
+ fields, detailed information about every file, or
+ additional information regarding its actions.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.version">
+ <term><option>--version</option></term>
+ <listitem>
+ <para>Prints the client version info. This information
+ includes not only the version number of the client, but
+ also a listing of all repository access modules that the
+ client can use to access a Subversion repository.
+ With <option>--quiet</option> (<option>-q</option>) it
+ prints only the version number in a compact form.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svn.sw.with_all_revprops">
+ <term><option>--with-all-revprops</option></term>
+ <listitem>
+ <para>Used with the <option>--xml</option> option
+ to <command>svn log</command>, instructs Subversion to
+ retrieve and display all revision properties—the
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/en/book/ref-svnadmin.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,1455 @@
+<reference id="svn.ref.svnadmin">
+ <title>svnadmin Reference—Subversion Repository
Administration</title>
+
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+ <partintro>
+ <para><command>svnadmin</command> is the administrative tool for
+ monitoring and repairing your Subversion repository. For
+ detailed information on repository administration, see the
maintenance section for <xref
+ linkend="svn.reposadmin.maint.tk.svnadmin"/>.</para>
+
+ <para>Since <command>svnadmin</command> works via direct repository
access
+ (and thus can only be used on the machine that holds the
+ repository), it refers to the repository with a path, not a
URL.</para>
+
+ <para>Options in <command>svnadmin</command> are global, just
+ as they are in <command>svn</command>:</para>
+
+ <variablelist>
+
+ <varlistentry id="svn.ref.svnadmin.sw.bdb_log_keep">
+ <term><option>--bdb-log-keep</option></term>
+ <listitem>
+ <para>(Berkeley DB-specific.) Disable automatic log removal
+ of database logfiles. Having these logfiles around
+ can be convenient if you need to restore from a
+ catastrophic repository failure.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.bdb_txn_nosync">
+ <term><option>--bdb-txn-nosync</option></term>
+ <listitem>
+
+ <para>(Berkeley DB-specific.) Disables fsync when
+ committing database transactions. Used with the
+ <command>svnadmin create</command> command to create a
+ Berkeley DB-backed repository with
+ <literal>DB_TXN_NOSYNC</literal> enabled (which improves
+ speed but has some risks associated with it).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.bypass_hooks">
+ <term><option>--bypass-hooks</option></term>
+ <listitem>
+ <para>Bypass the repository hook system.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.bypass_prop_validation">
+ <term><option>--bypass-prop-validation</option></term>
+ <listitem>
+ <para>When loading a dump file, disable the logic which
+ validates property values.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.clean_logs">
+ <term><option>--clean-logs</option></term>
+ <listitem>
+ <para>Remove unused Berkeley DB logs.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.config_dir">
+ <!-- Only 'svnadmin create' accepts it, and the underlying
+ logic doesn't even use it. Weird. -->
+ <term><option>--config-dir</option>
<replaceable>DIR</replaceable></term>
+ <listitem>
+ <para>Instructs Subversion to read configuration
+ information from the specified directory instead of the
+ default location (<filename>.subversion</filename> in
+ the user's home directory).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.deltas">
+ <term><option>--deltas</option></term>
+ <listitem>
+ <para>When creating a repository dump file, specify
+ changes in versioned properties and file contents as
+ deltas against their previous state.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.fs_type">
+ <term><option>--fs-type</option>
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>When creating a repository,
+ use <replaceable>ARG</replaceable> as the requested
+ filesyste type. <replaceable>ARG</replaceable> may be
+ either <literal>bdb</literal>
+ or <literal>fsfs</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.force_uuid">
+ <term><option>--force-uuid</option></term>
+ <listitem>
+ <para>By default, when loading data into a repository that
+ already contains revisions, <command>svnadmin</command>
+ will ignore the UUID from the dump stream. This option
+ will cause the repository's UUID to be set to the UUID
+ from the stream.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.ignore_uuid">
+ <term><option>--ignore-uuid</option></term>
+ <listitem>
+ <para>By default, when loading data into an empty repository,
+ <command>svnadmin</command> will set the repository's UUID
+ to the UUID from the dump stream. This option will cause
+ the UUID from the stream to be ignored.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.incremental">
+ <term><option>--incremental</option></term>
+ <listitem>
+ <para>Dump a revision only as a diff against the
+ previous revision, instead of the usual
+ fulltext.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.memory_cache_size">
+ <term><option>--memory-cache-size</option> (<option>-M</option>)
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Configures the size (in Megabytes) of the extra
+ in-memory cache used to minimize redundant operations.
+ The default value is <literal>16</literal>. (This cache
+ is used for FSFS-backed repositories only.)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.parent_dir">
+ <term><option>--parent-dir</option>
<replaceable>DIR</replaceable></term>
+ <listitem>
+ <para>When loading a dump file, root paths at
+ <replaceable>DIR</replaceable> instead of
+ <filename>/</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.pre_1.4_compatible">
+ <term><option>--pre-1.4-compatible</option></term>
+ <listitem>
+ <para>When creating a new repository, use a format that is
+ compatible with versions of Subversion earlier than
+ Subversion 1.4.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.pre_1.5_compatible">
+ <term><option>--pre-1.5-compatible</option></term>
+ <listitem>
+ <para>When creating a new repository, use a format that is
+ compatible with versions of Subversion earlier than
+ Subversion 1.5.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.pre_1.6_compatible">
+ <term><option>--pre-1.6-compatible</option></term>
+ <listitem>
+ <para>When creating a new repository, use a format that is
+ compatible with versions of Subversion earlier than
+ Subversion 1.6.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.revision">
+ <term><option>--revision</option> (<option>-r</option>)
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Specify a particular revision to operate
+ on.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.quiet">
+ <term><option>--quiet</option> (<option>-q</option>)</term>
+ <listitem>
+ <para>Do not show normal progress—show only
+ errors.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.use_post_commit_hook">
+ <term><option>--use-post-commit-hook</option></term>
+ <listitem>
+ <para>When loading a dump file, runs the repository's
+ <literal>post-commit</literal> hook after finalizing each
newly loaded
+ revision.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry
id="svn.ref.svnadmin.sw.use_post_revprop_change_hook">
+ <term><option>--use-post-revprop-change-hook</option></term>
+ <listitem>
+ <para>When changing a revision property, runs the
+ repository's <literal>post-revprop-change</literal> hook
after changing the
+ revision property.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.use_pre_commit_hook">
+ <term><option>--use-pre-commit-hook</option></term>
+ <listitem>
+ <para>When loading a dump file, runs the repository's
+ <literal>pre-commit</literal> hook before finalizing each
newly loaded
+ revision. If the hook fails, aborts the commit and
+ terminates the load process.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.use_pre_revprop_change_hook">
+ <term><option>--use-pre-revprop-change-hook</option></term>
+ <listitem>
+ <para>When changing a revision property, runs the
+ repository's <literal>pre-revprop-change</literal> hook
before changing the
+ revision property. If the hook fails, aborts the
+ modification and terminates.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnadmin.sw.wait">
+ <term><option>--wait</option></term>
+ <listitem>
+ <para>For operations which require exclusive repository
+ access, wait until the requisite repository lock has
+ been obtained instead of immediately erroring out when
+ it cannot be.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </partintro>
+
+ <!-- ===============================================================
-->
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.crashtest">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>crashtest</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin crashtest</refname>
+ <refpurpose>Simulate a process that crashes.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin crashtest REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Open the repository at
<replaceable>REPOS_PATH</replaceable>, then abort, thus
+ simulating a process that crashes while holding an open
+ repository handle. This is used for testing automatic
+ repository recovery (a new feature in Berkeley DB 4.4).
+ It's unlikely that you'll need to run this
+ command.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>None</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <informalexample>
+ <screen>
+$ svnadmin crashtest /var/svn/repos
+Aborted
+</screen>
+ </informalexample>
+
+ <para>Exciting, isn't it?</para>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.create">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>create</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin create</refname>
+ <refpurpose>Create a new, empty repository.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin create REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Create a new, empty repository at the path provided.
+ If the provided directory does not exist, it will be
+ created for
+ you.<footnote><para>Remember, <command>svnadmin</command>
+ works only with local <emphasis>paths</emphasis>, not
+ <emphasis>URLs</emphasis>.</para></footnote> As of
+ Subversion 1.2, <command>svnadmin</command> creates new
+ repositories with the
+ <literal>FSFS</literal> filesystem backend by
+ default.</para>
+
+ <para>While <command>svnadmin create</command> will create
+ the base directory for a new repository, it will not
+ create intermediate directories. For example, if you
+ have an empty directory named
+ <filename>/var/svn</filename>, creating
+ <filename>/var/svn/repos</filename> will work, while
+ attempting to create
+ <filename>/var/svn/subdirectory/repos</filename> will
+ fail with an error. Also, keep in mind that, depending
+ on where on your system you are creating your
+ repository, you might need to run <command>svnadmin
+ create</command> as a user with elevated privileges
+ (such as the <literal>root</literal> user).</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnadmin.sw.bdb_log_keep" />
+<xref linkend="svn.ref.svnadmin.sw.bdb_txn_nosync" />
+<xref linkend="svn.ref.svnadmin.sw.config_dir" />
+<xref linkend="svn.ref.svnadmin.sw.fs_type" />
+<xref linkend="svn.ref.svnadmin.sw.pre_1.4_compatible" />
+<xref linkend="svn.ref.svnadmin.sw.pre_1.5_compatible" />
+<xref linkend="svn.ref.svnadmin.sw.pre_1.6_compatible" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>Creating a new repository is this easy:</para>
+
+ <informalexample>
+ <screen>
+$ cd /var/svn
+$ svnadmin create repos
+$
+</screen>
+ </informalexample>
+
+ <para>In Subversion 1.0, a Berkeley DB repository is always
+ created. In Subversion 1.1, a Berkeley DB repository is
+ the default repository type, but an FSFS repository can be
+ created using the <option>--fs-type</option>
+ option:</para>
+
+ <informalexample>
+ <screen>
+$ cd /var/svn
+$ svnadmin create repos --fs-type fsfs
+$
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.deltify">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>deltify</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin deltify</refname>
+ <refpurpose>Deltify changed paths in a revision
range.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin deltify [-r LOWER[:UPPER]]
REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para><command>svnadmin deltify</command> exists in
+ current versions of Subversion only for historical reasons.
+ This command is deprecated and no longer needed.</para>
+
+ <para>It dates from a time when Subversion offered
+ administrators greater control over compression strategies
+ in the repository. This turned out to be a lot of
+ complexity for <emphasis>very</emphasis> little gain, and
+ this <quote>feature</quote> was deprecated.</para>
+
+ </refsect1>
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnadmin.sw.memory_cache_size" />
+<xref linkend="svn.ref.svnadmin.sw.quiet" />
+<xref linkend="svn.ref.svnadmin.sw.revision" />
+</screen>
+ </informalexample>
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.dump">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>dump</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin dump</refname>
+ <refpurpose>Dump the contents of the filesystem to
<filename>stdout</filename>.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin dump REPOS_PATH [-r LOWER[:UPPER]]
[--incremental] [--deltas]</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Dump the contents of the filesystem to
<filename>stdout</filename> in a
+ <quote>dump file</quote> portable format, sending feedback
+ to <filename>stderr</filename>. Dump revisions
+ <replaceable>LOWER</replaceable> rev through
+ <replaceable>UPPER</replaceable> rev. If no revisions are
+ given, dump all revision trees. If only
+ <replaceable>LOWER</replaceable> is given, dump that one
+ revision tree. See <xref
linkend="svn.reposadmin.maint.migrate"/>
+ for a practical use.</para>
+
+ <para>By default, the Subversion dump stream contains a
+ single revision (the first revision in the requested
+ revision range) in which every file and directory in the
+ repository in that revision is presented as though that whole
+ tree was added at once, followed by other revisions (the
+ remainder of the revisions in the requested range), which
+ contain only the files and directories that were modified
+ in those revisions. For a modified file, the complete
+ full-text representation of its contents, as well as all of
+ its properties, are presented in the dump file; for a
+ directory, all of its properties are presented.</para>
+
+ <para>Two useful options modify the dump file
+ generator's behavior. The first is the
+ <option>--incremental</option> option, which simply causes
+ that first revision in the dump stream to contain only
+ the files and directories modified in that revision,
+ instead of being presented as the addition of a new tree,
+ and in exactly the same way that every other revision in
+ the dump file is presented. This is useful for generating
+ a relatively small dump file to be loaded into another
+ repository that already has the files and directories
+ that exist in the original repository.</para>
+
+ <para>The second useful option is <option>--deltas</option>.
+ This option causes <command>svnadmin dump</command> to,
+ instead of emitting full-text representations of file
+ contents and property lists, emit only deltas of those
+ items against their previous versions. This reduces (in
+ some cases, drastically) the size of the dump file that
+ <command>svnadmin dump</command> creates. There are, however,
+ disadvantages to using this option—deltified
+ dump files are more CPU-intensive to create, cannot be
+ operated on by <command>svndumpfilter</command>, and tend
+ not to compress as well as their nondeltified counterparts
+ when using third-party tools such as <command>gzip</command>
+ and <command>bzip2</command>.</para>
+ </refsect1>
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnadmin.sw.deltas" />
+<xref linkend="svn.ref.svnadmin.sw.incremental" />
+<xref linkend="svn.ref.svnadmin.sw.memory_cache_size" />
+<xref linkend="svn.ref.svnadmin.sw.quiet" />
+<xref linkend="svn.ref.svnadmin.sw.revision" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>Dump your whole repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnadmin dump /var/svn/repos > full.dump
+* Dumped revision 0.
+* Dumped revision 1.
+* Dumped revision 2.
+…
+</screen>
+ </informalexample>
+
+ <para>Incrementally dump a single transaction from your
+ repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnadmin dump /var/svn/repos -r 21 --incremental > incr.dump
+* Dumped revision 21.
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.help">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>help</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin help (h, ?)</refname>
+ <refpurpose>Help!</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin help [SUBCOMMAND...]</literal></para>
+ </refsect1>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>This subcommand is useful when you're trapped on a
+ desert island with neither a Net connection nor a copy of
+ this book.</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.hotcopy">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>hotcopy</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin hotcopy</refname>
+ <refpurpose>Make a hot copy of a repository.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin hotcopy REPOS_PATH
NEW_REPOS_PATH</literal></para>
+ </refsect1>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>This subcommand makes a full <quote>hot</quote> backup
+ of your repository, including all hooks, configuration
+ files, and, of course, database files. If you pass the
+ <option>--clean-logs</option> option,
+ <command>svnadmin</command> will perform a hot copy of your
+ repository, and then remove unused Berkeley DB logs from
+ the original repository. You can run this command at any
+ time and make a safe copy of the repository, regardless of
+ whether other processes are using the repository.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnadmin.sw.clean_logs" />
+</screen>
+ </informalexample>
+
+ <warning>
+ <para>As described in <xref
+ linkend="svn.reposadmin.basics.backends.bdb"/>, hot-copied
+ Berkeley DB repositories are <emphasis>not</emphasis>
+ portable across operating systems, nor will they work on
+ machines with a different <quote>endianness</quote> than
+ the machine where they were created.</para>
+ </warning>
+
+ </refsect1>
+
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.list-dblogs">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>list-dblogs</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin list-dblogs</refname>
+ <refpurpose>Ask Berkeley DB which logfiles exist for a
+ given Subversion repository (applies only to repositories
+ using the <literal>bdb</literal> backend).</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin list-dblogs REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Berkeley DB creates logs of all changes to the
+ repository, which allow it to recover in the face of
+ catastrophe. Unless you enable
+ <literal>DB_LOG_AUTOREMOVE</literal>, the logfiles
+ accumulate, although most are no longer used and can be
+ deleted to reclaim disk space. See <xref
+ linkend="svn.reposadmin.maint.diskspace"/> for more
+ information.</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.list-unused-dblogs">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>list-unused-dblogs</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin list-unused-dblogs</refname>
+ <refpurpose>Ask Berkeley DB which logfiles can be safely
+ deleted (applies only to repositories using the
+ <literal>bdb</literal> backend).</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin list-unused-dblogs
REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Berkeley DB creates logs of all changes to the
+ repository, which allow it to recover in the face of
+ catastrophe. Unless you enable
+ <literal>DB_LOG_AUTOREMOVE</literal>, the logfiles
+ accumulate, although most are no longer used and can be
+ deleted to reclaim disk space. See <xref
+ linkend="svn.reposadmin.maint.diskspace"/> for more
+ information.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>Remove all unused logfiles from the repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnadmin list-unused-dblogs /var/svn/repos
+/var/svn/repos/log.0000000031
+/var/svn/repos/log.0000000032
+/var/svn/repos/log.0000000033
+
+$ svnadmin list-unused-dblogs /var/svn/repos | xargs rm
+## disk space reclaimed!
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.load">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>load</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin load</refname> <refpurpose>Read a
+ repository dump stream from
+ <filename>stdin</filename>.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin load REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Read a repository dump stream from
+ <filename>stdin</filename>, committing new revisions into the
repository's
+ filesystem. Send progress feedback to
<filename>stdout</filename>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnadmin.sw.bypass_prop_validation" />
+<xref linkend="svn.ref.svnadmin.sw.force_uuid" />
+<xref linkend="svn.ref.svnadmin.sw.ignore_uuid" />
+<xref linkend="svn.ref.svnadmin.sw.memory_cache_size" />
+<xref linkend="svn.ref.svnadmin.sw.parent_dir" />
+<xref linkend="svn.ref.svnadmin.sw.quiet" />
+<xref linkend="svn.ref.svnadmin.sw.use_post_commit_hook" />
+<xref linkend="svn.ref.svnadmin.sw.use_pre_commit_hook" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>This shows the beginning of loading a repository from
+ a backup file (made, of course, with <command>svnadmin
+ dump</command>):</para>
+
+ <informalexample>
+ <screen>
+$ svnadmin load /var/svn/restored < repos-backup
+<<< Started new txn, based on original revision 1
+ * adding path : test ... done.
+ * adding path : test/a ... done.
+…
+</screen>
+ </informalexample>
+
+ <para>Or if you want to load into a subdirectory:</para>
+
+ <informalexample>
+ <screen>
+$ svnadmin load --parent-dir new/subdir/for/project \
+ /var/svn/restored < repos-backup
+<<< Started new txn, based on original revision 1
+ * adding path : test ... done.
+ * adding path : test/a ... done.
+…
+</screen>
+ </informalexample>
+
+ <para>Newer versions of Subversion have grown more strict
+ regarding the format of the values of Subversion's own
+ built-in properties. Of course, properties created with
+ older versions of Subversion wouldn't have benefitted from
+ that strictness, and as such might be improperly
+ formatted. Dump streams carry property values as-is, so
+ using Subversion 1.7 to load dump streams created from
+ repositories with ill-formatted property values will, by
+ default, trigger a validation error. There are several
+ workaround for this problem. First, you can manually
+ repair the problematic property values in the source
+ repository and recreate the dump stream. Or, you can
+ manually tweak the dump stream itself to fix those
+ property values. Finally, if you'd rather not deal with
+ the problem right now, use the
+ <option>--bypass-prop-validation</option> option
+ with <command>svnadmin load</command>.</para>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.lslocks">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>lslocks</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin lslocks</refname>
+ <refpurpose>Print descriptions of all locks.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin lslocks REPOS_PATH
[PATH-IN-REPOS]</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print descriptions of all locks in
+ repository <replaceable>REPOS_PATH</replaceable>
+ underneath the
+ path <replaceable>PATH-IN-REPOS</replaceable>.
+ If <replaceable>PATH-IN-REPOS</replaceable> is not
+ provided, it defaults to the root directory of the
+ repository.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>None</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+
+ <para>This lists the one locked file in the repository at
+ <filename>/var/svn/repos</filename>:</para>
+
+ <informalexample>
+ <screen>
+$ svnadmin lslocks /var/svn/repos
+Path: /tree.jpg
+UUID Token: opaquelocktoken:ab00ddf0-6afb-0310-9cd0-dda813329753
+Owner: harry
+Created: 2005-07-08 17:27:36 -0500 (Fri, 08 Jul 2005)
+Expires:
+Comment (1 line):
+Rework the uppermost branches on the bald cypress in the foreground.
+</screen>
+ </informalexample>
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.lstxns">
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>lstxns</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin lstxns</refname>
+ <refpurpose>Print the names of all uncommitted
transactions.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin lstxns REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print the names of all uncommitted transactions. See
+ <xref linkend="svn.reposadmin.maint.diskspace.deadtxns" />
+ for information on how uncommitted transactions are
+ created and what you should do with them.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>List all outstanding transactions in a
+ repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnadmin lstxns /var/svn/repos/
+1w
+1x
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.pack">
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>pack</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin pack</refname>
+ <refpurpose>Possibly compact the repository into a more
+ efficient storage model.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin pack REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>See
+ <xref linkend="svn.reposadmin.maint.diskspace.fsfspacking"
+ /> for more information.</para>
+ </refsect1>
+ <refsect1>
+ <title>Options</title>
+ <para>None</para>
+ </refsect1>
+ </refentry>
+
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnadmin.c.recover">
+
+ <indexterm>
+ <primary>svnadmin</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>recover</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnadmin recover</refname>
+
+ <refpurpose>Bring a repository database back into a
+ consistent state (applies only to repositories using the
+ <literal>bdb</literal> backend). In addition, if
+ <filename>repos/conf/passwd</filename> does not exist, it
+ will create a default passwordfile .</refpurpose>
+
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnadmin recover REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Run this command if you get an error indicating that
+ your repository needs to be recovered.</para>
+ </refsect1>
+ <refsect1>
+ <title>Options</title>
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnadmin.sw.wait" />
+</screen>
+ </informalexample>
+ </refsect1>
+ <refsect1>
+ <title>Examples</title>
+
+ <para>Recover a hung repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnadmin recover /var/svn/repos/
+Repository lock acquired.
+Please wait; recovering the repository may take some time...
+
+Recovery completed.
+The latest repos revision is 34.
+</screen>
+ </informalexample>
+
+ <para>Recovering the database requires an exclusive lock on
+ the repository. (This is a <quote>database lock</quote>;
+ see the sidebar <xref
linkend="svn.advanced.locking.meanings"/>.)
+ If another process is accessing the repository,
+ then <command>svnadmin recover</command> will error:</para>
+
+ <informalexample>
+ <screen>
+$ svnadmin recover /var/svn/repos
+svn: E165000: Failed to get exclusive repository access; perhaps another
proce
+ss such as httpd, svnserve or svn has it open?
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/en/book/ref-svndumpfilter.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,356 @@
+<reference id="svn.ref.svndumpfilter">
+ <title>svndumpfilter Reference—Subversion History Filtering</title>
+
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+ <!-- =================================================================
-->
+ <partintro>
+
+ <para><command>svndumpfilter</command> is a command-line utility
+ for removing history from a Subversion dump file by either
+ excluding or including paths beginning with one or more named
+ prefixes. For details, see
+ <xref linkend="svn.reposadmin.maint.tk.svndumpfilter"/>.</para>
+
+ <para>Options in <command>svndumpfilter</command> are global, just
+ as they are in <command>svn</command> and
+ <command>svnadmin</command>:</para>
+
+ <variablelist>
+
+ <varlistentry id="svn.ref.svndumpfilter.sw.drop_empty_revs">
+ <term><option>--drop-empty-revs</option></term>
+ <listitem>
+ <para>If filtering causes any revision to be empty (i.e.,
+ causes no change to the repository), removes these
+ revisions from the final dump file.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svndumpfilter.sw.pattern">
+ <term><option>--pattern</option></term>
+ <listitem>
+ <para>Treat the path prefixes provided to the filtering
+ commands as file glob patterns rather than explicit path
+ substrings.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svndumpfilter.sw.renumber_revs">
+ <term><option>--renumber-revs</option></term>
+ <listitem>
+ <para>Renumbers revisions that remain after
+ filtering.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry
id="svn.ref.svndumpfilter.sw.skip_missing_merge_sources">
+ <term><option>--skip-missing-merge-sources</option></term>
+ <listitem>
+ <para>Skips merge sources that have been removed as part of
+ the filtering. Without this
+ option, <command>svndumpfilter</command> will exit with
+ an error if the merge source for a retained path is
+ removed by filtering.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svndumpfilter.sw.preserve_revprops">
+ <term><option>--preserve-revprops</option></term>
+ <listitem>
+ <para>If all nodes in a revision are removed by filtering
+ and <option>--drop-empty-revs</option> is not passed,
+ the default behavior of <command>svndumpfilter</command>
+ is to remove all revision properties except for the date
+ and the log message (which will merely indicate that the
+ revision is empty). Passing this option will preserve
+ existing revision properties (which may or may not make
+ sense since the related content is no longer present in
+ the dump file).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svndumpfilter.sw.targets">
+ <term><option>--targets</option>
<replaceable>FILENAME</replaceable></term>
+ <listitem>
+ <para>Instructs <command>svndumpfilter</command> to read
+ additional path prefixes—one per line—from
+ the file located at <replaceable>FILENAME</replaceable>.
+ This is especially useful for complex filtering
+ operations which require more prefixes than the
+ operating system allows to be specified on a single
+ command line.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svndumpfilter.sw.quiet">
+ <term><option>--quiet</option></term>
+ <listitem>
+ <para>Does not display filtering statistics.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </partintro>
+
+ <!-- ===============================================================
-->
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svndumpfilter.commands.c.exclude">
+
+ <indexterm>
+ <primary>svndumpfilter</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>exclude</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svndumpfilter exclude</refname>
+ <refpurpose>Filter out nodes with given prefixes from the dump
stream.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svndumpfilter exclude
PATH_PREFIX...</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>This can be used to exclude nodes that begin with one or
+ more <replaceable>PATH_PREFIX</replaceable>es from a
+ filtered dump file.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svndumpfilter.sw.drop_empty_revs" />
+<xref linkend="svn.ref.svndumpfilter.sw.pattern" />
+<xref linkend="svn.ref.svndumpfilter.sw.preserve_revprops" />
+<xref linkend="svn.ref.svndumpfilter.sw.quiet" />
+<xref linkend="svn.ref.svndumpfilter.sw.renumber_revs" />
+<xref linkend="svn.ref.svndumpfilter.sw.skip_missing_merge_sources" />
+<xref linkend="svn.ref.svndumpfilter.sw.targets" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>If we have a dump file from a repository with a number
+ of different picnic-related directories in it, but we want
+ to keep everything <emphasis>except</emphasis>
+ the <filename>sandwiches</filename> part of the
+ repository, we'll exclude only that path:</para>
+
+ <informalexample>
+ <screen>
+$ svndumpfilter exclude sandwiches < dumpfile > filtered-dumpfile
+Excluding prefixes:
+ '/sandwiches'
+
+Revision 0 committed as 0.
+Revision 1 committed as 1.
+Revision 2 committed as 2.
+Revision 3 committed as 3.
+Revision 4 committed as 4.
+
+Dropped 1 node(s):
+ '/sandwiches'
+$
+</screen>
+ </informalexample>
+
+ <para>Beginning in Subversion 1.7,
+ <command>svndumpfilter</command> can optionally treat
+ the <replaceable>PATH_PREFIX</replaceable>s not merely as
+ explicit substrings, but as file patterns instead. So,
+ for example, if you wished to filter out paths which ended
+ with <filename>.OLD</filename>, you would do the
+ following:</para>
+
+ <informalexample>
+ <screen>
+$ svndumpfilter exclude --pattern "*.OLD" < dumpfile >
filtered-dumpfile
+Excluding prefix patterns:
+ '/*.OLD'
+
+Revision 0 committed as 0.
+Revision 1 committed as 1.
+Revision 2 committed as 2.
+Revision 3 committed as 3.
+Revision 4 committed as 4.
+
+Dropped 3 node(s):
+ '/condiments/salt.OLD'
+ '/condiments/pepper.OLD'
+ '/toppings/cheese.OLD'
+$
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svndumpfilter.commands.c.include">
+
+ <indexterm>
+ <primary>svndumpfilter</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>include</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svndumpfilter include</refname>
+ <refpurpose>Filter out nodes without given prefixes from
+ dump stream.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svndumpfilter include
PATH_PREFIX...</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Can be used to include nodes that begin with one or
+ more <replaceable>PATH_PREFIX</replaceable>es in a
+ filtered dump file (thus excluding all other paths).</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svndumpfilter.sw.drop_empty_revs" />
+<xref linkend="svn.ref.svndumpfilter.sw.pattern" />
+<xref linkend="svn.ref.svndumpfilter.sw.preserve_revprops" />
+<xref linkend="svn.ref.svndumpfilter.sw.quiet" />
+<xref linkend="svn.ref.svndumpfilter.sw.renumber_revs" />
+<xref linkend="svn.ref.svndumpfilter.sw.skip_missing_merge_sources" />
+<xref linkend="svn.ref.svndumpfilter.sw.targets" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Example</title>
+
+ <para>If we have a dump file from a repository with a number of
+ different picnic-related directories in it, but want to
+ keep only the <filename>sandwiches</filename> part of the
+ repository, we'll include only that path:</para>
+
+ <informalexample>
+ <screen>
+$ svndumpfilter include sandwiches < dumpfile > filtered-dumpfile
+Including prefixes:
+ '/sandwiches'
+
+Revision 0 committed as 0.
+Revision 1 committed as 1.
+Revision 2 committed as 2.
+Revision 3 committed as 3.
+Revision 4 committed as 4.
+
+Dropped 12 node(s):
+ '/condiments'
+ '/condiments/pepper'
+ '/condiments/pepper.OLD'
+ '/condiments/salt'
+ '/condiments/salt.OLD'
+ '/drinks'
+ '/snacks'
+ '/supplies'
+ '/toppings'
+ '/toppings/cheese'
+ '/toppings/cheese.OLD'
+ '/toppings/lettuce'
+$
+</screen>
+ </informalexample>
+
+ <para>Beginning in Subversion 1.7,
+ <command>svndumpfilter</command> can optionally treat
+ the <replaceable>PATH_PREFIX</replaceable>s not merely as
+ explicit substrings, but as file patterns instead. So,
+ for example, if you wished to include only paths which ended
+ with <filename>ks</filename>, you would do the
+ following:</para>
+
+ <informalexample>
+ <screen>
+$ svndumpfilter include --pattern "*ks" < dumpfile >
filtered-dumpfile
+Including prefix patterns:
+ '/*ks'
+
+Revision 0 committed as 0.
+Revision 1 committed as 1.
+Revision 2 committed as 2.
+Revision 3 committed as 3.
+Revision 4 committed as 4.
+
+Dropped 11 node(s):
+ '/condiments'
+ '/condiments/pepper'
+ '/condiments/pepper.OLD'
+ '/condiments/salt'
+ '/condiments/salt.OLD'
+ '/sandwiches'
+ '/supplies'
+ '/toppings'
+ '/toppings/cheese'
+ '/toppings/cheese.OLD'
+ '/toppings/lettuce'
+$
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svndumpfilter.commands.c.help">
+
+ <indexterm>
+ <primary>svndumpfilter</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>help</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svndumpfilter help</refname>
+ <refpurpose>Help!</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svndumpfilter help
[SUBCOMMAND...]</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Displays the help message
+ for <command>svndumpfilter</command>. Unlike other help
+ commands documented in this chapter, there is no witty
+ commentary for this help command. The authors of this
+ book deeply regret the omission.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+ <para>None</para>
+ </refsect1>
+
+ </refentry>
+
+</reference>
+
+<!--
+local variables:
+sgml-parent-document: ("book.xml" "reference")
+end:
+-->
=======================================
--- /dev/null
+++ /trunk/en/book/ref-svnlook.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,1400 @@
+<reference id="svn.ref.svnlook">
+ <title>svnlook Reference—Subversion Repository Examination</title>
+
+ <partintro>
+ <para><command>svnlook</command> is a command-line utility for
+ examining different aspects of a Subversion repository. It
+ does not make any changes to the repository—it's just
+ used for <quote>peeking.</quote>
+ <command>svnlook</command> is typically used by the
+ repository hooks, but a repository administrator might find it
+ useful for diagnostic purposes.</para>
+
+ <para>Since <command>svnlook</command> works via direct repository
access
+ (and thus can be used only on the machine that holds the
+ repository), it refers to the repository with a path, not a
URL.</para>
+
+ <para>If no revision or transaction is specified,
+ <command>svnlook</command> defaults to the youngest (most
+ recent) revision of the repository.</para>
+
+ <para>Options in <command>svnlook</command> are global, just
+ as they are in <command>svn</command> and
+ <command>svnadmin</command>; however, most options apply
+ to only one subcommand since the functionality of
+ <command>svnlook</command> is (intentionally) limited in
+ scope:</para>
+
+ <variablelist>
+
+ <varlistentry id="svn.ref.svnlook.sw.copy_info">
+ <term><option>--copy-info</option></term>
+ <listitem>
+ <para>Causes <command>svnlook changed</command> to show
+ detailed copy source information.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.diff_copy_from">
+ <term><option>--diff-copy-from</option></term>
+ <listitem>
+ <para>Print differences for copied items against the copy
+ source.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.extensions">
+ <term><option>--extensions</option> (<option>-x</option>)
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Specifies customizations which Subversion should
+ make when performing difference calculations. Valid
+ extensions include:</para>
+ <variablelist>
+ <varlistentry>
+ <term><option>--ignore-space-change</option>
(<option>-b</option>)</term>
+ <listitem>
+ <para>Ignore changes in the amount of white space.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--ignore-all-space</option>
(<option>-w</option>)</term>
+ <listitem>
+ <para>Ignore all white space.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--ignore-eol-style</option></term>
+ <listitem>
+ <para>Ignore changes in EOL (end-of-line) style.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--show-c-function</option>
(<option>-p</option>)</term>
+ <listitem>
+ <para>Show C function names in the diff output.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--unified</option>
(<option>-u</option>)</term>
+ <listitem>
+ <para>Show three lines of unified diff context.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>The default value is <literal>-u</literal>.</para>
+ <para>Note that when Subversion is configured to invoke an
+ external diff command, the value of
+ the <option>--extension</option> (<option>-x</option>)
+ option isn't restricted to the previously mentioned
+ options, but may be <emphasis>any</emphasis> additional
+ arguments which Subversion should pass to that command.
+ If you wish to pass multiple arguments, you must enclose
+ all of them in quotes.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.full_paths">
+ <term><option>--full-paths</option></term>
+ <listitem>
+ <para>Causes <command>svnlook tree</command> to display
+ full paths instead of hierarchical, indented path
+ components.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.limit">
+ <term><option>--limit</option> (<option>-l</option>)
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Limit output to a maximum number of
+ <replaceable>ARG</replaceable> items.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.no_diff_deleted">
+ <term><option>--no-diff-deleted</option></term>
+ <listitem>
+ <para>Prevents <command>svnlook diff</command> from printing
+ differences for deleted files. The default behavior
+ when a file is deleted in a transaction/revision is
+ to print the same differences that you would see if
+ you had left the file but removed all the content.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.no_diff_added">
+ <term><option>--no-diff-added</option></term>
+ <listitem>
+ <para>Prevents <command>svnlook diff</command> from printing
+ differences for added files. The default behavior when
+ you add a file is to print the same differences that you
+ would see if you had added the entire contents of an
+ existing (empty) file.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.non_recursive">
+ <term><option>--non-recursive</option>
(<option>-N</option>)</term>
+ <listitem>
+ <para>Operate on a single directory only.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.revision">
+ <term><option>--revision</option> (<option>-r</option>)</term>
+ <listitem>
+ <para>Specifies a particular revision number that you wish
+ to examine.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.revprop">
+ <term><option>--revprop</option></term>
+ <listitem>
+ <para>Operates on a revision property instead of a
+ property specific to a file or directory. This option
+ requires that you also pass a revision with the
+ <option>--revision</option> (<option>-r</option>)
+ option.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.show_inherited_props">
+ <term><option>--show-inherited-props</option></term>
+ <listitem>
+ <para>Works with <command>svnlook propget</command> and
+ <command>svnlook proplist</command> to display the versioned
+ properties inherited by a path.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.transaction">
+ <term><option>--transaction</option> (<option>-t</option>)</term>
+ <listitem>
+ <para>Specifies a particular transaction ID that you wish to
+ examine.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.show_ids">
+ <term><option>--show-ids</option></term>
+ <listitem>
+ <para>Shows the filesystem node revision IDs for each path in
the filesystem
+ tree.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.verbose">
+ <term><option>--verbose</option> (<option>-v</option>)</term>
+ <listitem>
+ <para>Be verbose. When used with <command>svnlook
+ proplist</command>, for example, this causes Subversion
+ to display not just the list of properties, but their
+ values also.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnlook.sw.xml">
+ <term><option>--xml</option></term>
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </partintro>
+
+ <!-- ===============================================================
-->
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.author">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>author</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook author</refname>
+ <refpurpose>Print the author.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook author REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print the author of a revision or transaction in
+ the repository.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnlook.sw.revision" />
+<xref linkend="svn.ref.svnlook.sw.transaction" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para><command>svnlook author</command> is handy, but not
+ very exciting:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook author -r 40 /var/svn/repos
+sally
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.cat">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>cat</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook cat</refname>
+ <refpurpose>Print the contents of a file.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook cat REPOS_PATH
PATH_IN_REPOS</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print the contents of a file.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnlook.sw.revision" />
+<xref linkend="svn.ref.svnlook.sw.transaction" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>This shows the contents of a file in transaction
+ <literal>ax8</literal>, located at
+ <filename>/trunk/README</filename>:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook cat -t ax8 /var/svn/repos /trunk/README
+
+ Subversion, a version control system.
+ =====================================
+
+$LastChangedDate: 2003-07-17 10:45:25 -0500 (Thu, 17 Jul 2003) $
+
+Contents:
+
+ I. A FEW POINTERS
+ II. DOCUMENTATION
+ III. PARTICIPATING IN THE SUBVERSION COMMUNITY
+…
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.changed">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>changed</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook changed</refname>
+ <refpurpose>Print the paths that were changed.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook changed REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print the paths that were changed in a particular
+ revision or transaction, as well as <quote>svn
+ update-style</quote> status letters in the first two
+ columns:</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><literal>'A '</literal></term>
+ <listitem>
+ <para>Item added to repository</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>'D '</literal></term>
+ <listitem>
+ <para>Item deleted from repository</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>'U '</literal></term>
+ <listitem>
+ <para>File contents changed</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>'_U'</literal></term>
+ <listitem>
+ <para>Properties of item changed; note the leading
underscore</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>'UU'</literal></term>
+ <listitem>
+ <para>File contents and properties changed</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <para>Files and directories can be distinguished, as
+ directory paths are displayed with a
+ trailing <quote><literal>/</literal></quote>
+ character.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnlook.sw.copy_info" />
+<xref linkend="svn.ref.svnlook.sw.revision" />
+<xref linkend="svn.ref.svnlook.sw.transaction" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>This shows a list of all the changed files and
+ directories in revision 39 of a test repository. Note
+ that the first changed item is a directory, as evidenced
+ by the trailing <literal>/</literal>:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook changed -r 39 /var/svn/repos
+A trunk/vendors/deli/
+A trunk/vendors/deli/chips.txt
+A trunk/vendors/deli/sandwich.txt
+A trunk/vendors/deli/pickle.txt
+U trunk/vendors/baker/bagel.txt
+_U trunk/vendors/baker/croissant.txt
+UU trunk/vendors/baker/pretzel.txt
+D trunk/vendors/baker/baguette.txt
+</screen>
+ </informalexample>
+
+ <para>Here's an example that shows a revision in which a
+ file was renamed:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook changed -r 64 /var/svn/repos
+A trunk/vendors/baker/toast.txt
+D trunk/vendors/baker/bread.txt
+</screen>
+ </informalexample>
+
+ <para>Unfortunately, nothing in the preceding output reveals
+ the connection between the deleted and added files. Use
+ the <option>--copy-info</option> option to make this
+ relationship more apparent:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook changed -r 64 --copy-info /var/svn/repos
+A + trunk/vendors/baker/toast.txt
+ (from trunk/vendors/baker/bread.txt:r63)
+D trunk/vendors/baker/bread.txt
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.date">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>date</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook date</refname>
+ <refpurpose>Print the datestamp.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook date REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print the datestamp of a revision or transaction in
+ a repository.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnlook.sw.revision" />
+<xref linkend="svn.ref.svnlook.sw.transaction" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>This shows the date of revision 40 of a test
+ repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook date -r 40 /var/svn/repos/
+2003-02-22 17:44:49 -0600 (Sat, 22 Feb 2003)
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.diff">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>diff</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook diff</refname>
+ <refpurpose>Print differences of changed files and
properties.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook diff REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print GNU-style differences of changed files and
+ properties in a repository.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnlook.sw.diff_copy_from" />
+<xref linkend="svn.ref.svnlook.sw.no_diff_added" />
+<xref linkend="svn.ref.svnlook.sw.no_diff_deleted" />
+<xref linkend="svn.ref.svnlook.sw.revision" />
+<xref linkend="svn.ref.svnlook.sw.transaction" />
+<xref linkend="svn.ref.svnlook.sw.extensions" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>This shows a newly added (empty) file, a modified
+ binary file, and a renamed (that is, copied and deleted)
+ file with modifications:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook diff -r 40 /var/svn/repos
+Copied: trunk/relish.txt (from rev 39, trunk/vendors/deli/pickle.txt)
+===================================================================
+--- trunk/relish.txt (rev 0)
++++ trunk/relish.txt 2013-01-29 20:39:17 UTC (rev 40)
+@@ -0,0 +1 @@
++Pickle relish is mostly made from cucumbers.
+
+Deleted: trunk/vendors/deli/pickle.txt
+===================================================================
+--- trunk/vendors/deli/pickle.txt (rev 39)
++++ trunk/vendors/deli/pickle.txt 2013-01-29 20:39:17 UTC (rev 49)
+@@ -1 +0,0 @@
+-Pickles are mostly made from cucumbers.
+
+Modified: trunk/vendors/deli/logo.jpg
+===================================================================
+(Binary files differ)
+
+Added: trunk/vendors/deli/soda.txt
+===================================================================
+$
+</screen>
+ </informalexample>
+
+ <para>By default, <command>svnlook diff</command> will treat
+ copied files very much like any other added file,
+ displaying in their entirety the contents of the new file
+ and merely using a different label to draw the copy/add
+ distinction. However, you can use the
+ <option>--diff-copy-from</option> option to cause
+ <command>svnlook diff</command> to consider a copied
+ file as worthy of mention only if it differs from the file
+ from which it was copied, and to actually describe those
+ differences.</para>
+
+ <informalexample>
+ <screen>
+$ svnlook diff -r 40 /var/svn/repos --diff-copy-from
+Copied: trunk/relish.txt (from rev 39, trunk/vendors/deli/pickle.txt)
+===================================================================
+--- trunk/vendors/deli/pickle.txt 2013-01-29 20:39:17 UTC (rev 39)
++++ trunk/relish.txt 2013-01-29 20:47:40 UTC (rev 3)
+@@ -1 +1 @@
+-Pickles are mostly made from cucumbers.
++Pickle relish is mostly made from cucumbers.
+
+Deleted: trunk/vendors/deli/pickle.txt
+===================================================================
+--- trunk/vendors/deli/pickle.txt (rev 39)
++++ trunk/vendors/deli/pickle.txt 2013-01-29 20:39:17 UTC (rev 40)
+@@ -1 +0,0 @@
+-Pickles are mostly made from cucumbers.
+
+Modified: trunk/vendors/deli/logo.jpg
+===================================================================
+(Binary files differ)
+
+Added: trunk/vendors/deli/soda.txt
+==============================================================================
+$
+</screen>
+ </informalexample>
+
+ <para>Use the <option>--no-diff-deleted</option> option to
+ silence output regarding deleted files.</para>
+
+ <informalexample>
+ <screen>
+$ svnlook diff -r 40 /var/svn/repos --no-diff-deleted
+Copied: trunk/relish.txt (from rev 39, trunk/vendors/deli/pickle.txt)
+===================================================================
+--- trunk/relish.txt (rev 0)
++++ trunk/relish.txt 2013-01-29 20:39:17 UTC (rev 40)
+@@ -0,0 +1 @@
++Pickle relish is mostly made from cucumbers.
+
+Modified: trunk/vendors/deli/logo.jpg
+===================================================================
+(Binary files differ)
+
+Added: trunk/vendors/deli/soda.txt
+==============================================================================
+$
+</screen>
+ </informalexample>
+
+ <para>Note that in each of the previous examples, when a
+ file has a nontextual <literal>svn:mime-type</literal>
+ property, the differences are not explicitly shown.</para>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.dirs-changed">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>dirs-changed</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook dirs-changed</refname>
+ <refpurpose>Print the directories that were themselves
changed.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook dirs-changed REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print the directories that were themselves changed
+ (property edits) or whose file children were
+ changed.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnlook.sw.revision" />
+<xref linkend="svn.ref.svnlook.sw.transaction" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>This shows the directories that changed in
+ revision 40 in our sample repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook dirs-changed -r 40 /var/svn/repos
+trunk/vendors/deli/
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.filesize">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>filesize</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook filesize</refname>
+ <refpurpose>Print the size (in bytes) of a versioned
+ file.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook filesize REPOS_PATH
+ PATH_IN_REPOS</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print the file size (in bytes) of the file located
+ at <replaceable>PATH_IN_REPOS</replaceable> in the HEAD
+ revision of the repository identified
+ by <replaceable>REPOS_PATH</replaceable> as a base-10
+ integer followed by an end-of-line character. Use
+ the <option>--revision</option> (<option>-r</option>)
+ and <option>--transaction</option> (<option>-t</option>)
+ options to specify a version of the file other than HEAD
+ whose file size you wish to display.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnlook.sw.revision" />
+<xref linkend="svn.ref.svnlook.sw.transaction" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>The following demonstrates how to display the size of
+ the <filename>trunk/vendors/deli/soda.txt</filename> file
+ as it appeared in revision 40 of our sample
+ repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook filesize -r 40 /var/svn/repos trunk/vendors/deli/soda.txt
+23
+$
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.help">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>help</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook help (h, ?)</refname>
+ <refpurpose>Help!</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>Also svnlook -h and svnlook -?.</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Displays the help message
+ for <command>svnlook</command>. This command, like its
+ brother, <command>svn help</command>, is also your friend,
+ even though you never call it anymore and forgot to invite
+ it to your last party.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+ <para>None</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.history">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>history</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook history</refname>
+ <refpurpose>Print information about the history of a path in
+ the repository (or the root directory if no path is
+ supplied).</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook history REPOS_PATH
[PATH_IN_REPOS]</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print information about the history of a path in
+ the repository (or the root directory if no path is
+ supplied).</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnlook.sw.limit" />
+<xref linkend="svn.ref.svnlook.sw.revision" />
+<xref linkend="svn.ref.svnlook.sw.show_ids" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>This shows the history output for the path
+ <filename>/branches/bookstore</filename> as of revision 13 in
our
+ sample repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook history -r 13 /var/svn/repos /branches/bookstore --show-ids
+REVISION PATH <ID>
+-------- ---------
+ 13 /branches/bookstore <1.1.r13/390>
+ 12 /branches/bookstore <1.1.r12/413>
+ 11 /branches/bookstore <1.1.r11/0>
+ 9 /trunk <1.0.r9/551>
+ 8 /trunk <1.0.r8/131357096>
+ 7 /trunk <1.0.r7/294>
+ 6 /trunk <1.0.r6/353>
+ 5 /trunk <1.0.r5/349>
+ 4 /trunk <1.0.r4/332>
+ 3 /trunk <1.0.r3/335>
+ 2 /trunk <1.0.r2/295>
+ 1 /trunk <1.0.r1/532>
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.info">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>info</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook info</refname>
+ <refpurpose>Print the author, datestamp, log message size,
+ and log message.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook info REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print the author, datestamp, log message size (in bytes),
+ and log message, followed by a newline character.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnlook.sw.revision" />
+<xref linkend="svn.ref.svnlook.sw.transaction" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>This shows the info output for revision 40 in our
+ sample repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook info -r 40 /var/svn/repos
+sally
+2003-02-22 17:44:49 -0600 (Sat, 22 Feb 2003)
+16
+Rearrange lunch.
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.lock">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>lock</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook lock</refname>
+ <refpurpose>If a lock exists on a path in the repository,
+ describe it.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook lock REPOS_PATH
PATH_IN_REPOS</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print all information available for the lock at
+ <replaceable>PATH_IN_REPOS</replaceable>. If
+ <replaceable>PATH_IN_REPOS</replaceable> is not locked,
+ print nothing.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>None</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>This describes the lock on the file
+ <filename>tree.jpg</filename>:</para>
+
+ <informalexample>
+ <screen>
+$ svnlook lock /var/svn/repos tree.jpg
+UUID Token: opaquelocktoken:ab00ddf0-6afb-0310-9cd0-dda813329753
+Owner: harry
+Created: 2005-07-08 17:27:36 -0500 (Fri, 08 Jul 2005)
+Expires:
+Comment (1 line):
+Rework the uppermost branches on the bald cypress in the foreground.
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnlook.c.log">
+
+ <indexterm>
+ <primary>svnlook</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>log</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnlook log</refname>
+ <refpurpose>Print the log message, followed by a newline
+ character.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnlook log REPOS_PATH</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/en/book/ref-svnmucc.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,453 @@
+<reference id="svn.ref.svnmucc">
+ <title>svnmucc Reference—Subversion Multiple URL Command
Client</title>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.svnmucc.re">
+
+ <indexterm>
+ <primary>svnmucc</primary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnmucc</refname>
+
+ <refpurpose>Perform one or more Subversion repository
+ URL-based ACTIONs, committing the result as a (single) new
+ revision.</refpurpose>
+ </refnamediv>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refsect1 id="svn.ref.svnmucc.re.syn">
+ <title>Synopsis</title>
+ <para><literal>svnmucc ACTION...</literal></para>
+ </refsect1>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refsect1 id="svn.ref.svnmucc.re.desc">
+ <title>Description</title>
+
+ <para><command>svnmucc</command> is a program for modifying
+ Subversion-versioned data without the use of a working copy.
+ It allows operations to be performed directly against the
+ repository URLs of the files and directories that the user
+ wishes to change. Each invocation of <command>svnmucc</command>
+ attempts one or more <replaceable>ACTION</replaceable>s,
+ atomically committing the results of those combined
+ <replaceable>ACTION</replaceable>s as a single new
+ revision.</para>
+
+ </refsect1>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refsect1 id="svn.ref.svnmucc.re.actions">
+ <title>Actions</title>
+
+ <para><command>svnmucc</command> supports the following
+ actions (and related arguments), which may be combined into
+ ordered sequences on the command line:</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term>cp <replaceable>REV</replaceable>
+ <replaceable>SRC-URL</replaceable>
+ <replaceable>DST-URL</replaceable></term>
+ <listitem>
+ <para>Copy the file or directory located
+ at <replaceable>SRC-URL</replaceable> in
+ revision <replaceable>REV</replaceable>
+ to <replaceable>DST-URL</replaceable>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>mkdir <replaceable>URL</replaceable></term>
+ <listitem>
+ <para>Create a new directory at
<replaceable>URL</replaceable>.
+ The parent directory of <replaceable>URL</replaceable>
+ must already exist (or have been created by a
+ prior <command>svnmucc</command> action), as this
+ command does not offer the ability to automatically
+ create any missing intermediate parent
+ directories.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>mv <replaceable>SRC-URL</replaceable>
+ <replaceable>DST-URL</replaceable></term>
+ <listitem>
+ <para>Move the file or directory located
+ at <replaceable>SRC-URL</replaceable> to
+ <replaceable>DST-URL</replaceable>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>rm <replaceable>URL</replaceable></term>
+ <listitem>
+ <para>Delete the file or directory located
+ at <replaceable>URL</replaceable>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>put <replaceable>SRC-FILE</replaceable>
+ <replaceable>URL</replaceable></term>
+ <listitem>
+ <para>Add a new file—or modify an existing
+ one—located at <replaceable>URL</replaceable>,
+ copying the contents of the local file
+ <replaceable>SRC-FILE</replaceable> as the new contents
+ of the created or modified file. As a special
+ consideration, <replaceable>SRC-FILE</replaceable> may
+ be <literal>-</literal> to instruct
+ <command>svnmucc</command> to read from standard input
+ rather than a local filesystem file.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>propsetf <replaceable>NAME</replaceable>
+ <replaceable>VALUE</replaceable>
+ <replaceable>URL</replaceable></term>
+ <listitem>
+ <para>Set the value of the
+ property <replaceable>NAME</replaceable> on the
+ target <replaceable>URL</replaceable>
+ to <replaceable>VALUE</replaceable>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>propsetf <replaceable>NAME</replaceable>
+ <replaceable>FILE</replaceable>
+ <replaceable>URL</replaceable></term>
+ <listitem>
+ <para>Set the value of the
+ property <replaceable>NAME</replaceable> on the
+ target <replaceable>URL</replaceable>
+ to the contents of the file
+ <replaceable>FILE</replaceable>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>propdel <replaceable>NAME</replaceable>
+ <replaceable>URL</replaceable></term>
+ <listitem>
+ <para>Delete the property <replaceable>NAME</replaceable>
+ from the target <replaceable>URL</replaceable>.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refsect1 id="svn.ref.svnmucc.re.sw">
+ <title>Options</title>
+
+ <para>Options specified on the <command>svnmucc</command>
+ command line are global to all actions performed by that
+ command line. The following is a list of the options
+ supported by this tool:</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><option>--config-dir</option>
+ <replaceable>DIR</replaceable></term>
+ <listitem>
+ <para>Read configuration information from the specified
+ directory instead of the default location
+ (<filename>.subversion</filename> in the user's home
+ directory).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--config-option</option>
+ <replaceable>CONFSPEC</replaceable></term>
+ <listitem>
+ <para>Set, for the duration of the command, the value
+ of a runtime configuration option.
+ <replaceable>CONFSPEC</replaceable> is a
+ string which specifies the configuration option
+ namespace, name and value that you'd like to assign,
+ formatted as
+
<replaceable>FILE</replaceable>:<replaceable>SECTION</replaceable>:<replaceable>OPTION</replaceable>=[<replaceable>VALUE</replaceable>].
+ In this syntax, <replaceable>FILE</replaceable>
+ and <replaceable>SECTION</replaceable> are the runtime
+ configuration file (either <literal>config</literal>
+ or <literal>servers</literal>) and the section
+ thereof, respectively, which contain the option whose
+ value you wish to
+ change. <replaceable>OPTION</replaceable> is, of
+ course, the option itself,
+ and <replaceable>VALUE</replaceable> the value (if
+ any) you wish to assign to the option. For example,
+ to temporarily disable the use of the automatic
+ property setting feature,
+ use
<option>--config-option=config:miscellany:enable-auto-props=no</option>.
+ You can use this option multiple times to change
+ multiple option values simultaneously.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--extra-args</option> (<option>-X</option>)
+ <replaceable>ARGFILE</replaceable></term>
+ <listitem>
+ <para>Read additional would-be command-line arguments
+ from <replaceable>ARGFILE</replaceable>, one argument
+ per line. As a special consideration,
+ <replaceable>ARGFILE</replaceable> may be
+ <literal>-</literal> to indicate that additional
+ arguments should be read instead from standard
+ input.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--file</option> (<option>-F</option>)
+ <replaceable>MSGFILE</replaceable></term>
+ <listitem>
+ <para>Use the contents of the
<replaceable>MSGFILE</replaceable>
+ as the log message for the commit.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--help</option> (<option>-h</option>,
+ <option>-?</option>)</term>
+ <listitem>
+ <para>Show program usage information and exit.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--message</option> (<option>-m</option>)
+ <replaceable>MSG</replaceable></term>
+ <listitem>
+ <para>Use <replaceable>MSG</replaceable> as the log
+ message for the commit.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--no-auth-cache</option></term>
+ <listitem>
+ <para>Prevent caching of authentication information
+ (e.g., username and password) in the Subversion
+ runtime configuration directories.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--non-interactive</option></term>
+ <listitem>
+ <para>Disable all interactive prompting (e.g., requests
+ for authentication credentials).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--revision</option> (<option>-r</option>)
+ <replaceable>REV</replaceable></term>
+ <listitem>
+ <para>Use revision <replaceable>REV</replaceable> as the
+ baseline revision for all changes made via
+ the <command>svnmucc</command> actions. This is an
+ important option which users should habituate to using
+ whenever modifying existing versioned items to avoid
+ inadvertently undoing contemporary changes made by
+ fellow team members.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--root-url</option> (<option>-U</option>)
+ <replaceable>ROOT-URL</replaceable></term>
+ <listitem>
+ <para>Use <replaceable>ROOT-URL</replaceable> as a base
+ URL to which all other URL targets are relative. This
+ URL need not be the repository's root URL (such
+ as might be reported by <command>svn info</command>).
+ It can be any URL common to the various targets which
+ are specified in the <command>svnmucc</command>
+ actions.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--password</option> (<option>-p</option>)
+ <replaceable>PASSWD</replaceable></term>
+ <listitem>
+ <para>Use <replaceable>PASSWD</replaceable> as the
+ password when authenticating against a Subversion
+ server. If not provided, or if incorrect, Subversion
+ will prompt you for this information as needed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--username</option>
+ <replaceable>NAME</replaceable></term>
+ <listitem>
+ <para>Use <replaceable>USERNAME</replaceable> as the
+ username when authenticating against a Subversion
+ server. If not provided, or if incorrect, Subversion
+ will prompt you for this information as needed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--version</option></term>
+ <listitem>
+ <para>Display the program's version information and
+ exit.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--with-revprop</option>
+
<replaceable>NAME</replaceable>=<replaceable>VALUE</replaceable></term>
+ <listitem>
+ <para>Set the value of the revision property
+ <replaceable>NAME</replaceable> to
+ <replaceable>VALUE</replaceable> on the committed
+ revision.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refsect1 id="svn.ref.svnmucc.re.examples">
+ <title>Examples</title>
+
+ <para>To (safely) modify a file's contents without using a
+ working copy, use <command>svn cat</command> to fetch the
+ current contents of the file, and <command>svnmucc
+ put</command> to commit the edited contents thereof.</para>
+
+ <informalexample>
+ <screen>
+$ # Calculate some convenience variables.
+$ export FILEURL=http://svn.example.com/projects/sandbox/README
+$ export BASEREV=`svn info ${FILEURL} | \
+ grep '^Last Changed Rev' | cut -d ' ' -f 2`
+$ # Get a copy of the file's current contents.
+$ svn cat ${FILEURL}@${BASEREV} > /tmp/README.tmpfile
+$ # Edit the (copied) file.
+$ vi /tmp/README.tmpfile
+$ # Commit the new content for our file.
+$ svnmucc -r ${BASEREV} put README.tmpfile ${FILEURL} \
+ -m "Tweak the README file."
+r24 committed by harry at 2013-01-21T16:21:23.100133Z
+# Cleanup after ourselves.
+$ rm /tmp/README.tmpfile
+</screen>
+ </informalexample>
+
+ <para>Apply a similar approach to change a file or directory
+ property. Simply use <command>svnmucc propget</command>
+ and <command>svnmucc propsetf</command> instead
+ of <command>svn cat</command> and <command>svnmucc
+ put</command>, respectively.</para>
+
+ <informalexample>
+ <screen>
+$ # Calculate some convenience variables.
+$ export PROJURL=http://svn.example.com/projects/sandbox
+$ export BASEREV=`svn info ${PROJURL} | \
+ grep '^Last Changed Rev' | cut -d ' ' -f 2`
+$ # Get a copy of the directory's "license" property value.
+$ svnmucc -r ${BASEREV} propget license ${PROJURL} > /tmp/prop.tmpfile
+$ # Tweak the property.
+$ vi /tmp/prop.tmpfile
+$ # Commit the new property value.
+$ svnmucc -r ${BASEREV} propsetf prop.tmpfile ${PROJURL} \
+ -m "Tweak the project directory 'license' property."
+r25 committed by harry at 2013-01-21T16:24:11.375936Z
+# Cleanup after ourselves.
+$ rm /tmp/prop.tmpfile
+</screen>
+ </informalexample>
+
+ <para>Let's look now at some multi-operation examples.</para>
+
+ <para>To implement a <quote>moving tag</quote>, where a single
+ tag name is recycled to point to different snapshots (for
+ example, the current latest stable version) of a codebase,
+ use <command>svnmucc rm</command> and <command>svnmucc
+ cp</command>:</para>
+
+ <informalexample>
+ <screen>
+$ svnmucc -U http://svn.example.com/projects/doohickey \
+ rm tags/latest-stable \
+ cp HEAD trunk tags/latest-stable \
+ -m "Slide the 'latest-stable' tag forward."
+r134 committed by harry at 2013-01-12T11:02:16.142536Z
+$
+</screen>
+ </informalexample>
+
+ <para>In the previous example, we slyly introduced the use of
+ the <option>--root-url (-U)</option> option. Use this
+ option to specify a base URL to which all other operand URLs
+ are treated as relative (and save yourself some
+ typing).</para>
+
+ <para>The following shows an example of using
+ <command>svnmucc</command> to, in a single revision, create
+ a new tag of your project which includes a newly created
+ descriptive file and which lacks a directory which shouldn't
+ be included in, say, a release tarball.</para>
+
+ <informalexample>
+ <screen>
+$ echo "This is the 1.2.0 release." | \
+ svnmucc -U http://svn.example.com/projects/doohickey \
+ -m "Tag the 1.2.0 release." \
+ -- \
+ cp HEAD trunk tags/1.2.0 \
+ rm tags/1.2.0/developer-notes \
+ put - tags/1.2.0/README.tag
+r164 committed by cmpilato at 2013-01-22T05:26:15.563327Z
+$ svn log -c 164 -v http://svn.example.com/projects/doohickey
+------------------------------------------------------------------------
+r164 | cmpilato | 2013-01-22 00:26:15 -0500 (Tue, 22 Jan 2013) | 1 line
+Changed paths:
+ A /tags/1.2.0 (from /trunk:163)
+ A /tags/1.2.0/README.tag
+ D /tags/1.2.0/developer-notes
+
+Tag the 1.2.0 release.
+$
+</screen>
+ </informalexample>
+
+ <para>The previous example demonstrates not only how to do
+ several different things in a single <command>svnmucc</command>
+ invocation, but also the use of standard input as the source
+ of new file contents. Note the presence of <literal>--</literal>
+ to indicate that no more options follow on the command line.
+ This is required so that the bare <literal>-</literal> used
+ in the <command>svnmucc put</command> action won't be
+ flagged as a malformed option indicator.</para>
+
+ </refsect1>
+
+ </refentry>
+
+</reference>
+
+<!--
+local variables:
+sgml-parent-document: ("book.xml" "reference")
+end:
+-->
=======================================
--- /dev/null
+++ /trunk/en/book/ref-svnrdump.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,334 @@
+<reference id="svn.ref.svnrdump">
+ <title>svnrdump Reference—Remote Subversion Repository Data
Migration</title>
+
+ <partintro>
+ <para><command>svnrdump</command> joined the Subversion tool chain
+ in the Subversion 1.7 release. It is best described as a
+ network-aware version of the <command>svnadmin dump</command>
+ and <command>svnadmin load</command> commands, paired together
+ and released as a separate standalone program. We discuss the
+ process of dumping and loading repository data—using
+ both <command>svnadmin</command>
+ and <command>svnrdump</command>— in
+ <xref linkend="svn.reposadmin.maint.migrate" />.</para>
+
+ <para>Options in <command>svnrdump</command> are global, just
+ as they are in <command>svn</command> and
+ <command>svnadmin</command>:</para>
+
+ <variablelist>
+
+ <varlistentry id="svn.ref.svnrdump.sw.config_dir">
+ <term><option>--config-dir</option>
<replaceable>DIR</replaceable></term>
+ <listitem>
+ <para>Instructs Subversion to read configuration
+ information from the specified directory instead of the
+ default location (<filename>.subversion</filename> in
+ the user's home directory).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnrdump.sw.config_option">
+ <term><option>--config-option</option>
<replaceable>FILE</replaceable>:<replaceable>SECTION</replaceable>:<replaceable>OPTION</replaceable>=[<replaceable>VALUE</replaceable>]</term>
+ <listitem>
+ <para>Sets, for the duration of the command, the value of
+ a runtime configuration
+ option. <replaceable>FILE</replaceable>
+ and <replaceable>SECTION</replaceable> are the runtime
+ configuration file (either <literal>config</literal>
+ or <literal>servers</literal>) and the section thereof,
+ respectively, which contain the option whose value you
+ wish to change. <replaceable>OPTION</replaceable> is,
+ of course, the option itself,
+ and <replaceable>VALUE</replaceable> the value (if any)
+ you wish to assign to the option. For example, to
+ temporarily disable the use of the automatic property
+ setting feature,
+ use
<option>--config-option=servers:global:http-library=serf</option>.
+ You can use this option multiple times to change
+ multiple option values simultaneously.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnrdump.sw.incremental">
+ <term><option>--incremental</option></term>
+ <listitem>
+ <para>Dump a revision or revision range only as a diff
+ against the previous revision, instead of the default,
+ which is begin a dumped revision range with a complete
+ expansion of all contents of the repository as of that
+ revision.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnrdump.sw.no_auth_cache">
+ <term><option>--no-auth-cache</option></term>
+ <listitem>
+ <para>Prevents caching of authentication information
+ (e.g., username and password) in the Subversion
+ runtime configuration directories.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnrdump.sw.non_interactive">
+ <term><option>--non-interactive</option></term>
+ <listitem>
+ <para>In the case of an authentication failure or
+ insufficient credentials, prevents prompting for
+ credentials (e.g., username or password). This is useful
+ if you're running Subversion inside an automated
+ script and it's more appropriate to have Subversion fail
+ than to prompt for more information.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnrdump.sw.password">
+ <term><option>--password</option>
<replaceable>PASSWD</replaceable></term>
+ <listitem>
+ <para>Specifies the password to use when authenticating
+ against a Subversion server. If not provided, or if
+ incorrect, Subversion will prompt you for this
+ information as needed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnrdump.sw.quiet">
+ <term><option>--quiet</option> (<option>-q</option>)</term>
+ <listitem>
+ <para>Requests that the client print only essential
+ information while performing an operation.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnrdump.sw.revision">
+ <term><option>--revision</option> (<option>-r</option>)
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Used by <command>svnsync copy-revprops</command> to
+ specify a particular revision or revision range on which
+ to operate.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnrdump.sw.trust_server_cert">
+ <term><option>--trust-server-cert</option></term>
+ <listitem>
+ <para>Used with <option>--non-interactive</option> to accept
+ any unknown SSL server certificates without prompting.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnrdump.sw.username">
+ <term><option>--username</option>
<replaceable>NAME</replaceable></term>
+ <listitem>
+ <para>Specifies the username to use when authenticating
+ against a Subversion server. If not provided, or if
+ incorrect, Subversion will prompt you for this
+ information as needed.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </partintro>
+
+ <!-- ===============================================================
-->
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnrdump.c.dump">
+
+ <indexterm>
+ <primary>svnrdump</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>dump</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnrdump dump</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnrdump dump SOURCE_URL</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Dump—that is, generate a repository dump stream
+ of—revisions of the repository item located
+ at <replaceable>SOURCE_URL</replaceable>, printing the
+ information to standard output. By default, the entire
+ history will be included in the dump stream, but the scope
+ of the operation can be limited via the use of
+ the <option>--revision</option> (<option>-r</option>)
+ option.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnrdump.sw.config_dir" />
+<xref linkend="svn.ref.svnrdump.sw.config_option" />
+<xref linkend="svn.ref.svnrdump.sw.incremental" />
+<xref linkend="svn.ref.svnrdump.sw.no_auth_cache" />
+<xref linkend="svn.ref.svnrdump.sw.non_interactive" />
+<xref linkend="svn.ref.svnrdump.sw.password" />
+<xref linkend="svn.ref.svnrdump.sw.quiet" />
+<xref linkend="svn.ref.svnrdump.sw.revision" />
+<xref linkend="svn.ref.svnrdump.sw.trust_server_cert" />
+<xref linkend="svn.ref.svnrdump.sw.username" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>Generate a dump stream of the full history of a remote
+ repository (assuming that the user as who this runs has
+ authorization to read all paths in the repository).</para>
+
+ <informalexample>
+ <screen>
+$ svnrdump dump http://svn.example.com/repos/calc > full.dump
+* Dumped revision 0.
+* Dumped revision 1.
+* Dumped revision 2.
+…
+</screen>
+ </informalexample>
+
+ <para>Incrementally dump a single revision from that same
+ repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnrdump dump http://svn.example.com/repos/calc \
+ -r 21 --incremental > full.dump
+* Dumped revision 21.
+$
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnrdump.c.help">
+
+ <indexterm>
+ <primary>svnrdump</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>help</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnrdump help</refname>
+ <refpurpose>Help!</refpurpose>
+ </refnamediv>
+ <refsect1>
+
+ <title>Synopsis</title>
+ <para><literal>svnrdump help</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Use this to get help. Well, certain kinds of help.
+ Need white lab coat and straightjackets kind of help?
+ There's a whole different protocol for that sort of
+ thing.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+ <para>None</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnrdump.c.load">
+
+ <indexterm>
+ <primary>svnrdump</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>load</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnrdump load</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnrdump load DEST_URL</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Read from standard input revision information
+ described in a Subversion repository dump stream, and load
+ that information into the repository located
+ at <replaceable>DEST_URL</replaceable>.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnrdump.sw.config_dir" />
+<xref linkend="svn.ref.svnrdump.sw.config_option" />
+<xref linkend="svn.ref.svnrdump.sw.no_auth_cache" />
+<xref linkend="svn.ref.svnrdump.sw.non_interactive" />
+<xref linkend="svn.ref.svnrdump.sw.password" />
+<xref linkend="svn.ref.svnrdump.sw.quiet" />
+<xref linkend="svn.ref.svnrdump.sw.trust_server_cert" />
+<xref linkend="svn.ref.svnrdump.sw.username" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>Dump the contents of a local repository, and
+ use <command>svnrdump load</command> to transfer that
+ revision information into an existing remote
+ repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnadmin dump -q /var/svn/repos/new-project | \
+ svnrdump load http://svn.example.com/repos/new-project
+* Loaded revision 0
+* Loaded revision 1.
+* Loaded revision 2.
+…
+</screen>
+ </informalexample>
+
+ <note>
+ <para>To operate properly <command>svnrdump load</command>
+ requires that the target repository have revision
+ property modification enabled via the pre-revprop-change
+ hook. For details about that hook, see
+ <xref linkend="svn.ref.reposhooks.pre-revprop-change"
+ />.</para>
+ </note>
+
+ </refsect1>
+ </refentry>
+
+</reference>
+
+<!--
+local variables:
+sgml-parent-document: ("book.xml" "reference")
+end:
+-->
=======================================
--- /dev/null
+++ /trunk/en/book/ref-svnserve.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,279 @@
+<reference id="svn.ref.svnserve">
+ <title>svnserve Reference—Custom Subversion Server</title>
+
+ <!-- =============================================================== -->
+ <refentry id="svn.ref.svnserve.re">
+
+ <indexterm>
+ <primary>svnserve</primary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnserve</refname>
+ <refpurpose>Serve Subversion repositories via Subversion's
+ custom network protocol</refpurpose>
+ </refnamediv>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <refsect1 id="svn.ref.svnserve.re.syn">
+ <title>Synopsis</title>
+ <para><literal>svnserve [-d | -i | -t | -X]
OPTIONS...</literal></para>
+ </refsect1>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <refsect1 id="svn.ref.svnserve.re.desc">
+ <title>Description</title>
+
+ <para><command>svnserve</command> allows access to Subversion
+ repositories using Subversion's custom network
+ protocol.</para>
+
+ <para>You can run <command>svnserve</command> as a standalone
+ server process (for clients that are using the
+ <literal>svn://</literal> access method); you can have a
+ daemon such as <command>inetd</command>
+ or <command>xinetd</command> launch it for you on demand (also
+ for <literal>svn://</literal>), or you can have
+ <command>sshd</command> launch it on demand for the
+ <literal>svn+ssh://</literal> access method.</para>
+
+ <para>Regardless of the access method, once the client has
+ selected a repository by transmitting its URL,
+ <command>svnserve</command> reads a file named
+ <filename>conf/svnserve.conf</filename> in the repository
+ directory to determine repository-specific settings such as
+ what authentication database to use and what authorization
+ policies to apply. See
+ <xref linkend="svn.serverconfig.svnserve"/> for details of the
+ <filename>svnserve.conf</filename> file.</para>
+
+ </refsect1>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+ <refsect1 id="svn.ref.svnserve.re.options">
+ <title>Options</title>
+
+ <para>Unlike the previous commands we've
+ described, <command>svnserve</command> has no
+ subcommands—it is controlled exclusively by
+ options.</para>
+
+ <variablelist>
+
+ <varlistentry id="svn.ref.svnserve.sw.cache_fulltexts">
+ <term><option>--cache-fulltexts</option>
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Toggles support for fulltext file content caching (in
+ FSFS repositories only).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.cache_txdeltas">
+ <term><option>--cache-txdeltas</option>
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Toggles support for file content delta caching (in
+ FSFS repositories only).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.compression">
+ <term><option>--compression</option>
<replaceable>LEVEL</replaceable></term>
+ <listitem>
+ <para>Specifies the level of compression used for wire
+ transmissions as an integer beween 0 and 9, inclusive.
+ A value of <literal>9</literal> offers the best
+ compression, <literal>5</literal> is the default value,
+ and <literal>0</literal> disables compression
+ altogether.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.daemon">
+ <term><option>--daemon</option> (<option>-d</option>)</term>
+ <listitem>
+ <para>Causes <command>svnserve</command> to run in daemon
+ mode. <command>svnserve</command> backgrounds itself
+ and accepts and serves TCP/IP connections on
+ the <literal>svn</literal> port (3690, by
+ default).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.foreground">
+ <term><option>--foreground</option></term>
+ <listitem>
+ <para>When used together with <option>-d</option>,
+ causes <command>svnserve</command> to stay in the
+ foreground. This is mainly useful for debugging.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.inetd">
+ <term><option>--inetd</option> (<option>-i</option>)</term>
+ <listitem>
+ <para>Causes <command>svnserve</command> to use the
+ <filename>stdin</filename> and <filename>stdout</filename>
file descriptors, as is appropriate for a
+ daemon running out of <command>inetd</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.help">
+ <term><option>--help</option> (<option>-h</option>)</term>
+ <listitem>
+ <para>Displays a usage summary and exits.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.listen_host">
+ <term><option>--listen-host</option>
<replaceable>HOST</replaceable></term>
+ <listitem>
+ <para>Causes <command>svnserve</command> to listen on the
+ interface specified by <replaceable>HOST</replaceable>,
+ which may be either a hostname or an IP address.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.listen_once">
+ <term><option>--listen-once</option> (<option>-X</option>)</term>
+ <listitem>
+ <para>Causes <command>svnserve</command> to accept one
+ connection on the <literal>svn</literal> port, serve it,
+ and exit. This option is mainly useful for
+ debugging.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.listen_port">
+ <term><option>--listen-port</option>
<replaceable>PORT</replaceable></term>
+ <listitem>
+ <para>Causes <command>svnserve</command> to listen on
+ <replaceable>PORT</replaceable> when run in daemon mode.
+ (FreeBSD daemons listen only on tcp6 by default—this
+ option tells them to also listen on tcp4.)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.log_file">
+ <term><option>--log-file</option>
<replaceable>FILENAME</replaceable></term>
+ <listitem>
+ <para>Instructs <command>svnserve</command> to create (if
+ necessary) and use the file located
+ at <replaceable>FILENAME</replaceable> for Subversion
+ operational log output of the same sort
+ that <command>mod_dav_svn</command> generates. See
+ <xref linkend="svn.serverconfig.operational-logging" />
+ for details.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.memory_cache_size">
+ <term><option>--memory-cache-size</option> (<option>-M</option>)
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Configures the size (in Megabytes) of the extra
+ in-memory cache used to minimize redundant operations.
+ The default value is <literal>16</literal>. (This cache
+ is used for FSFS-backed repositories only.)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.pid_file">
+ <term><option>--pid-file</option>
<replaceable>FILENAME</replaceable></term>
+ <listitem>
+ <para>Causes <command>svnserve</command> to write its
+ process ID to <replaceable>FILENAME</replaceable>, which
+ must be writable by the user under
+ which <command>svnserve</command> is running.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.prefer_ipv6">
+ <term><option>--prefer-ipv6</option> (<option>-6</option></term>
+ <listitem>
+ <para>When resolving the listen hostname, prever an IPv6
+ answer over an IPv4 one. IPv4 is preferred by
+ default.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.quiet">
+ <term><option>--quiet</option></term>
+ <listitem>
+ <para>Disables progress notifications. Error output will
+ still be printed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.root">
+ <term><option>--root</option> (<option>-r</option>)
<replaceable>ROOT</replaceable></term>
+ <listitem>
+ <para>Sets the virtual root for repositories served by
+ <command>svnserve</command>. The pathname in URLs
+ provided by the client will be interpreted relative to
+ this root and will not be allowed to escape this
+ root.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.threads">
+ <term><option>--threads</option> (<option>-T</option>)</term>
+ <listitem>
+ <para>When running in daemon mode, causes
+ <command>svnserve</command> to spawn a thread instead of
+ a process for each connection (e.g., for when running on
+ Windows). The <command>svnserve</command> process still
+ backgrounds itself at startup time.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.tunnel">
+ <term><option>--tunnel</option> (<option>-t</option>)</term>
+ <listitem>
+ <para>Causes <command>svnserve</command> to run in tunnel
+ mode, which is just like the <command>inetd</command>
+ mode of operation (both modes serve one connection over
+ <filename>stdin</filename>/<filename>stdout</filename>, 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 <command>ssh</command>. That means there's
+ rarely any need for <emphasis>you</emphasis> to pass
+ this option to <command>svnserve</command>. So, if you
+ find yourself
+ typing <literal>svnserve --tunnel</literal> on the
+ command line and wondering what to do next, see
+ <xref linkend="svn.serverconfig.svnserve.sshauth"/>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.tunnel_user">
+ <term><option>--tunnel-user</option>
<replaceable>NAME</replaceable></term>
+ <listitem>
+ <para>Used in conjunction with the <option>--tunnel</option>
+ option, tells <command>svnserve</command> to assume that
+ <replaceable>NAME</replaceable> is the authenticated
+ user, rather than the UID of the <command>svnserve</command>
+ process. This is useful for users wishing to share a single
+ system account over SSH, but to maintain separate commit
+ identities.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnserve.sw.version">
+ <term><option>--version</option></term>
+ <listitem>
+ <para>Displays version information and a list of repository
+ backend modules available, and then exits.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </refsect1>
+ </refentry>
+</reference>
+
+<!--
+local variables:
+sgml-parent-document: ("book.xml" "reference")
+end:
+-->
=======================================
--- /dev/null
+++ /trunk/en/book/ref-svnsync.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,642 @@
+<reference id="svn.ref.svnsync">
+ <title>svnsync Reference—Subversion Repository Mirroring</title>
+
+ <partintro>
+ <para><command>svnsync</command> is the Subversion remote
+ repository mirroring tool. Put simply, it allows you to replay
+ the revisions of one repository into another one.</para>
+
+ <para>In any mirroring scenario, there are two repositories: the
+ source repository, and the mirror (or <quote>sink</quote>)
+ repository. The source repository is the repository from which
+ <command>svnsync</command> pulls revisions. The mirror
+ repository is the destination for the revisions pulled from the
+ source repository. Each of the repositories may be local or
+ remote—they are only ever addressed by their URLs.</para>
+
+ <para>The <command>svnsync</command> process requires only read
+ access to the source repository; it never attempts to modify it.
+ But obviously, <command>svnsync</command> requires both read and
+ write access to the mirror repository.</para>
+
+ <warning>
+ <para><command>svnsync</command> is very sensitive to changes
+ made in the mirror repository that weren't made as part of a
+ mirroring operation. To prevent this from happening, it's
+ best if the <command>svnsync</command> process is the only
+ process permitted to modify the mirror repository.</para>
+ </warning>
+
+ <para>Options in <command>svnsync</command> are global, just
+ as they are in <command>svn</command> and
+ <command>svnadmin</command>:</para>
+
+ <variablelist>
+
+ <varlistentry id="svn.ref.svnsync.sw.allow_non_empty">
+ <term><option>--allow-non-empty</option></term>
+ <listitem>
+ <para>Disables the verification (which <command>svnsync
+ initialize</command> performs by default) that the
+ repository being initialized is empty of history
+ version.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.config_dir">
+ <term><option>--config-dir</option>
<replaceable>DIR</replaceable></term>
+ <listitem>
+ <para>Instructs Subversion to read configuration
+ information from the specified directory instead of the
+ default location (<filename>.subversion</filename> in
+ the user's home directory).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.config_option">
+ <term><option>--config-option</option>
<replaceable>CONFSPEC</replaceable></term>
+ <listitem>
+ <para>Sets, for the duration of the command, the value of
+ a runtime configuration
+ option. <replaceable>CONFSPEC</replaceable> is a string
+ which specifies the configuration option namespace, name
+ and value that you'd like to assign, formatted as
+
<replaceable>FILE</replaceable>:<replaceable>SECTION</replaceable>:<replaceable>OPTION</replaceable>=[<replaceable>VALUE</replaceable>].
+ In this syntax, <replaceable>FILE</replaceable>
+ and <replaceable>SECTION</replaceable> are the runtime
+ configuration file (either <literal>config</literal>
+ or <literal>servers</literal>) and the section thereof,
+ respectively, which contain the option whose value you
+ wish to change. <replaceable>OPTION</replaceable> is,
+ of course, the option itself,
+ and <replaceable>VALUE</replaceable> the value (if any)
+ you wish to assign to the option. For example, to
+ temporarily disable the use of the automatic property
+ setting feature,
+ use
<option>--config-option=servers:global:http-library=serf</option>.
+ You can use this option multiple times to change
+ multiple option values simultaneously.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.disable_locking">
+ <term><option>--disable-locking</option></term>
+ <listitem>
+ <para>Causes <command>svnsync</command> to bypass its own
+ exclusive access mechanisms and operate on the
+ assumption that its exclusive access to the mirror
+ repository is being guaranteed through some other,
+ out-of-band mechanism.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.no_auth_cache">
+ <term><option>--no-auth-cache</option></term>
+ <listitem>
+ <para>Prevents caching of authentication information
+ (e.g., username and password) in the Subversion
+ runtime configuration directories.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.non_interactive">
+ <term><option>--non-interactive</option></term>
+ <listitem>
+ <para>In the case of an authentication failure or
+ insufficient credentials, prevents prompting for
+ credentials (e.g., username or password). This is useful
+ if you're running Subversion inside an automated
+ script and it's more appropriate to have Subversion fail
+ than to prompt for more information.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.quiet">
+ <term><option>--quiet</option> (<option>-q</option>)</term>
+ <listitem>
+ <para>Requests that the client print only essential
+ information while performing an operation.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.revision">
+ <term><option>--revision</option> (<option>-r</option>)
<replaceable>ARG</replaceable></term>
+ <listitem>
+ <para>Used by <command>svnsync copy-revprops</command> to
+ specify a particular revision or revision range on which
+ to operate.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.source_password">
+ <term><option>--source-password</option>
<replaceable>PASSWD</replaceable></term>
+ <listitem>
+ <para>Specifies the password for the Subversion server
+ from which you are syncing. If not provided, or if
+ incorrect, Subversion will prompt you for this
+ information as needed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.source_prop_encoding ">
+ <term><option>--source-prop-encoding
<replaceable>ARG</replaceable></option></term>
+ <listitem>
+ <para>Instructs <command>svnsync</command> to assume that
+ translatable Subversion revision properties found in the
+ source repository are stored using the character
+ encoding <replaceable>ARG</replaceable> and to transcode
+ those into UTF-8 when copying them into the mirror
+ repository.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.source_username">
+ <term><option>--source-username</option>
<replaceable>NAME</replaceable></term>
+ <listitem>
+ <para>Specifies the username for the Subversion server
+ from which you are syncing. If not provided, or if
+ incorrect, Subversion will prompt you for this
+ information as needed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.steal_lock">
+ <term><option>--steal-lock</option></term>
+ <listitem>
+ <para>Causes <command>svnsync</command> to steal, as
+ necessary, the lock which it uses on the mirror
+ repository to ensure exclusive repository access. (This
+ option should only be used when a lock exists in the
+ mirror repository and is known to be stale—that
+ is, when you are certain that there are no
+ other <command>svnsync</command> processes accessing
+ that repository.)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.sync_password">
+ <term><option>--sync-password</option>
<replaceable>PASSWD</replaceable></term>
+ <listitem>
+ <para>Specifies the password for the Subversion server to
+ which you are syncing. If not provided, or if
+ incorrect, Subversion will prompt you for this
+ information as needed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.sync_username">
+ <term><option>--sync-username</option>
<replaceable>NAME</replaceable></term>
+ <listitem>
+ <para>Specifies the username for the Subversion server to
+ which you are syncing. If not provided, or if
+ incorrect, Subversion will prompt you for this
+ information as needed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnsync.sw.trust_server_cert">
+ <term><option>--trust-server-cert</option></term>
+ <listitem>
+ <para>Used with <option>--non-interactive</option> to accept
+ any unknown SSL server certificates without prompting.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </partintro>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnsync.c.copy-revprops">
+
+ <indexterm>
+ <primary>svnsync</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>copy-revprops</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnsync copy-revprops</refname>
+ <refpurpose>Copy all revision properties for a particular
+ revision (or range of revisions) from the source
+ repository to the mirror repository.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnsync copy-revprops DEST_URL
+ [SOURCE_URL]</literal></para>
+ <para><literal>svnsync copy-revprops DEST_URL
+ REV[:REV2]</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Because Subversion revision properties can be changed
+ at any time, it's possible that the properties for some
+ revision might be changed after that revision has already
+ been synchronized to another repository. Because the
+ <command>svnsync synchronize</command> command operates
+ only on the range of revisions that have not yet been
+ synchronized, it won't notice a revision property change
+ outside that range. Left as is, this causes a deviation
+ in the values of that revision's properties between the
+ source and mirror repositories. <command>svnsync
+ copy-revprops</command> is the answer to this problem.
+ Use it to resynchronize the revision properties for a
+ particular revision or range of revisions.</para>
+
+ <para>When <replaceable>SOURCE_URL</replaceable> is
+ provided, <command>svnsync</command> will use it as the
+ repository URL which the destination repository is
+ mirroring. Generally, <replaceable>SOURCE_URL</replaceable>
+ will be exactly the same source URL as was used with
+ the <command>svnsync initialize</command> command when the
+ mirror was first set up. You may choose, however, to
+ omit <replaceable>SOURCE_URL</replaceable>, in which
+ case <command>svnsync</command> will consult the mirror
+ repository's records to determine the source URL which
+ should be used.</para>
+
+ <warning>
+ <para>We strongly recommend that you specify the source
+ URL on the command-line, especially when untrusted users
+ have write access to the revision 0 properties
+ which <command>svnsync</command> uses to coordinate its
+ efforts.</para>
+ </warning>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnsync.sw.config_dir" />
+<xref linkend="svn.ref.svnsync.sw.config_option" />
+<xref linkend="svn.ref.svnsync.sw.disable_locking" />
+<xref linkend="svn.ref.svnsync.sw.no_auth_cache" />
+<xref linkend="svn.ref.svnsync.sw.non_interactive" />
+<xref linkend="svn.ref.svnsync.sw.quiet" />
+<xref linkend="svn.ref.svnsync.sw.revision" />
+<xref linkend="svn.ref.svnsync.sw.source_password" />
+<xref linkend="svn.ref.svnsync.sw.source_prop_encoding" />
+<xref linkend="svn.ref.svnsync.sw.source_username" />
+<xref linkend="svn.ref.svnsync.sw.steal_lock" />
+<xref linkend="svn.ref.svnsync.sw.sync_password" />
+<xref linkend="svn.ref.svnsync.sw.sync_username" />
+<xref linkend="svn.ref.svnsync.sw.trust_server_cert" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>Resynchronize the revision properties associated with
+ a single revision (r6):</para>
+
+ <informalexample>
+ <screen>
+$ svnsync copy-revprops -r 6 file:///var/svn/repos-mirror \
+ http://svn.example.com/repos
+Copied properties for revision 6.
+$
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnsync.c.help">
+
+ <indexterm>
+ <primary>svnsync</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>help</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnsync help</refname>
+ <refpurpose>Help!</refpurpose>
+ </refnamediv>
+ <refsect1>
+
+ <title>Synopsis</title>
+ <para><literal>svnsync help</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>This subcommand is useful when you're trapped in a
+ foreign prison with neither a Net connection nor a copy of
+ this book, but you do have a local Wi-Fi network running
+ and you'd like to sync a copy of your repository over to
+ the backup server that Ira The Knife is running over in
+ cell block D.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+ <para>None</para>
+ </refsect1>
+
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnsync.c.info">
+
+ <indexterm>
+ <primary>svnsync</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>info</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnsync info</refname>
+ <refpurpose>Print information about the synchronization
+ of a destination repository.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnsync info DEST_URL</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>Print the synchronization source URL, source repository
+ UUID and the last revision merged from the source to the
+ destination repository at
<replaceable>DEST_URL</replaceable>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnsync.sw.config_dir" />
+<xref linkend="svn.ref.svnsync.sw.config_option" />
+<xref linkend="svn.ref.svnsync.sw.no_auth_cache" />
+<xref linkend="svn.ref.svnsync.sw.non_interactive" />
+<xref linkend="svn.ref.svnsync.sw.source_password" />
+<xref linkend="svn.ref.svnsync.sw.source_username" />
+<xref linkend="svn.ref.svnsync.sw.sync_password" />
+<xref linkend="svn.ref.svnsync.sw.sync_username" />
+<xref linkend="svn.ref.svnsync.sw.trust_server_cert" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>Print the synchronization information of a mirror
+ repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnsync info file:///var/svn/repos-mirror
+Source URL: http://svn.example.com/repos
+Source Repository UUID: e7fe1b91-8cd5-0310-98dd-2f12e793c5e8
+Last Merged Revision: 47
+$
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnsync.c.init">
+
+ <indexterm>
+ <primary>svnsync</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>initialize</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnsync initialize (init)</refname>
+ <refpurpose>Initialize a mirror repository for
+ synchronization from the source repository.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnsync initialize MIRROR_URL
+ SOURCE_URL</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para><command>svnsync initialize</command> verifies that a
+ repository meets the basic requirements of a new mirror
+ repository and records the initial administrative
+ information that associates the mirror repository with the
+ source repository (specified
+ by <replaceable>SOURCE_URL</replaceable>). This is the
+ first <command>svnsync</command> operation you run on a
+ would-be mirror repository.</para>
+
+ <para>Ordinarily, <replaceable>SOURCE_URL</replaceable> is
+ the URL of the root directory of the Subversion repository
+ you wish to mirror. Subversion 1.5 and newer allow you to
+ use <command>svnsync</command> for partial repository
+ mirroring, though — simply specify the URL of the
+ source repository subdirectory you wish to mirror
+ as <replaceable>SOURCE_URL</replaceable>.</para>
+
+ <para>By default, the aforementioned basic requirements of a
+ mirror are that it allows revision property modifications
+ and that it contains no version history. However, as of
+ Subversion 1.7, you may now optionally disable the
+ verification that the target repository is empty using
+ the <option>--allow-non-empty</option> option. While the
+ use of this option should not become habitual (as it
+ bypasses a valuable safeguard mechanism), it does aid in
+ one very common use-case: initializing a copy of a
+ repository as a mirror of the original. This is
+ especially handy when setting up new mirrors of
+ repositories which contain a large amount of version
+ history. Rather than initialize a brand new repository as
+ a mirror and then syncronize all of the history into it,
+ administrators will find it <emphasis>significantly</emphasis>
+ faster to first make a copy of the mature repository
+ (perhaps using <command>svnadmin hotcopy</command>) and
+ then use <command>svnsync initialize
+ --allow-non-empty</command> to initialize that copy as a
+ mirror which is now already up-to-date with the
+ original.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnsync.sw.allow_non_empty" />
+<xref linkend="svn.ref.svnsync.sw.config_dir" />
+<xref linkend="svn.ref.svnsync.sw.config_option" />
+<xref linkend="svn.ref.svnsync.sw.disable_locking" />
+<xref linkend="svn.ref.svnsync.sw.no_auth_cache" />
+<xref linkend="svn.ref.svnsync.sw.non_interactive" />
+<xref linkend="svn.ref.svnsync.sw.quiet" />
+<xref linkend="svn.ref.svnsync.sw.source_password" />
+<xref linkend="svn.ref.svnsync.sw.source_prop_encoding" />
+<xref linkend="svn.ref.svnsync.sw.source_username" />
+<xref linkend="svn.ref.svnsync.sw.steal_lock" />
+<xref linkend="svn.ref.svnsync.sw.sync_password" />
+<xref linkend="svn.ref.svnsync.sw.sync_username" />
+<xref linkend="svn.ref.svnsync.sw.trust_server_cert" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>Fail to initialize a mirror repository due to
+ inability to modify revision properties:</para>
+
+ <informalexample>
+ <screen>
+$ svnsync initialize file:///var/svn/repos-mirror \
+ http://svn.example.com/repos
+svnsync: Repository has not been enabled to accept revision propchanges;
+ask the administrator to create a pre-revprop-change hook
+$
+</screen>
+ </informalexample>
+
+ <para>Initialize a repository as a mirror, having already
+ created a <literal>pre-revprop-change</literal> hook that
+ permits all revision property changes:</para>
+
+ <informalexample>
+ <screen>
+$ svnsync initialize file:///var/svn/repos-mirror \
+ http://svn.example.com/repos
+Copied properties for revision 0.
+$
+</screen>
+ </informalexample>
+
+ </refsect1>
+ </refentry>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <refentry id="svn.ref.svnsync.c.sync">
+
+ <indexterm>
+ <primary>svnsync</primary>
+ <secondary>subcommands</secondary>
+ <tertiary>synchronize</tertiary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnsync synchronize (sync)</refname>
+ <refpurpose>Transfer all pending revisions from the source
+ repository to the mirror repository.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Synopsis</title>
+ <para><literal>svnsync synchronize DEST_URL
+ [SOURCE_URL]</literal></para>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+
+ <para>The <command>svnsync synchronize</command> command
+ does all the heavy lifting of a repository mirroring
+ operation. After consulting with the mirror repository to
+ see which revisions have already been copied into it, it
+ then begins to copy any not-yet-mirrored revisions from
+ the source repository.</para>
+
+ <para><command>svnsync synchronize</command> can be
+ gracefully canceled and restarted.</para>
+
+ <para>When <replaceable>SOURCE_URL</replaceable> is
+ provided, <command>svnsync</command> will use it as the
+ repository URL which the destination repository is
+ mirroring. Generally, <replaceable>SOURCE_URL</replaceable>
+ will be exactly the same source URL as was used with
+ the <command>svnsync initialize</command> command when the
+ mirror was first set up. You may choose, however, to
+ omit <replaceable>SOURCE_URL</replaceable>, in which
+ case <command>svnsync</command> will consult the mirror
+ repository's records to determine the source URL which
+ should be used.</para>
+
+ <warning>
+ <para>We strongly recommend that you specify the source
+ URL on the command-line, especially when untrusted users
+ have write access to the revision 0 properties
+ which <command>svnsync</command> uses to coordinate its
+ efforts.</para>
+ </warning>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <informalexample>
+ <screen>
+<xref linkend="svn.ref.svnsync.sw.config_dir" />
+<xref linkend="svn.ref.svnsync.sw.config_option" />
+<xref linkend="svn.ref.svnsync.sw.disable_locking" />
+<xref linkend="svn.ref.svnsync.sw.no_auth_cache" />
+<xref linkend="svn.ref.svnsync.sw.non_interactive" />
+<xref linkend="svn.ref.svnsync.sw.quiet" />
+<xref linkend="svn.ref.svnsync.sw.source_password" />
+<xref linkend="svn.ref.svnsync.sw.source_prop_encoding" />
+<xref linkend="svn.ref.svnsync.sw.source_username" />
+<xref linkend="svn.ref.svnsync.sw.steal_lock" />
+<xref linkend="svn.ref.svnsync.sw.sync_password" />
+<xref linkend="svn.ref.svnsync.sw.sync_username" />
+<xref linkend="svn.ref.svnsync.sw.trust_server_cert" />
+</screen>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>Copy unsynchronized revisions from the source
+ repository to the mirror repository:</para>
+
+ <informalexample>
+ <screen>
+$ svnsync synchronize file:///var/svn/repos-mirror \
+ http://svn.example.com/repos
+Committed revision 1.
+Copied properties for revision 1.
+Committed revision 2.
+Copied properties for revision 2.
+Committed revision 3.
+Copied properties for revision 3.
+…
+Committed revision 45.
+Copied properties for revision 45.
+Committed revision 46.
+Copied properties for revision 46.
+Committed revision 47.
+Copied properties for revision 47.
+$
+</screen>
+ </informalexample>
+
+ </refsect1>
+
+ </refentry>
+
+</reference>
+
+<!--
+local variables:
+sgml-parent-document: ("book.xml" "reference")
+end:
+-->
=======================================
--- /dev/null
+++ /trunk/en/book/ref-svnversion.xml Tue Feb 5 13:51:43 2013
@@ -0,0 +1,186 @@
+<reference id="svn.ref.svnversion">
+ <title>svnversion Reference—Subversion Working Copy Version
Info</title>
+
+ <!-- ===============================================================
-->
+ <refentry id="svn.ref.svnversion.re">
+
+ <indexterm>
+ <primary>svnversion</primary>
+ </indexterm>
+
+ <refnamediv>
+ <refname>svnversion</refname>
+ <refpurpose>Summarize the local revision(s) of a working
+ copy.</refpurpose>
+ </refnamediv>
+
+ <refsect1 id="svn.ref.svnversion.re.syn">
+ <title>Synopsis</title>
+ <para><literal>svnversion [OPTIONS] [WC_PATH
[TRAIL_URL]]</literal></para>
+ </refsect1>
+
+ <refsect1 id="svn.ref.svnversion.re.desc">
+ <title>Description</title>
+
+ <para><command>svnversion</command> is a program for
+ summarizing the revision mixture of a working copy. The
+ resultant revision number, or revision range, is written to
+ standard output.</para>
+
+ <para>It's common to use this output in your build process
+ when defining the version number of your program.</para>
+
+ <para><replaceable>TRAIL_URL</replaceable>, if present, is the
+ trailing portion of the URL used to determine whether
+ <replaceable>WC_PATH</replaceable> itself is switched
+ (detection of switches within
+ <replaceable>WC_PATH</replaceable> does not rely on
+ <replaceable>TRAIL_URL</replaceable>).</para>
+
+ <para>When <replaceable>WC_PATH</replaceable> is not defined,
+ the current directory will be used as the working copy path.
+ <replaceable>TRAIL_URL</replaceable> cannot be defined if
+ <replaceable>WC_PATH</replaceable> is not explicitly
+ given.</para>
+
+ </refsect1>
+
+ <refsect1 id="svn.ref.svnversion.re.sw">
+ <title>Options</title>
+
+ <para>Like <command>svnserve</command>,
+ <command>svnversion</command> has no subcommands—only
+ options:</para>
+
+ <variablelist>
+
+ <varlistentry id="svn.ref.svnversion.sw.no_newline">
+ <term><option>--no-newline</option>
(<option>-n</option>)</term>
+ <listitem>
+ <para>Omits the usual trailing newline from the
output.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnversion.sw.committed">
+ <term><option>--committed</option> (<option>-c</option>)</term>
+ <listitem>
+ <para>Uses the last-changed revisions rather than the
+ current (i.e., highest locally available) revisions.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnversion.sw.help">
+ <term><option>--help</option> (<option>-h</option>)</term>
+ <listitem>
+ <para>Prints a help summary.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnversion.sw.quiet">
+ <term><option>--quiet</option> (<option>-q</option>)</term>
+ <listitem>
+ <para>Requests that the program print only essential
+ information while performing an operation.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="svn.ref.svnversion.sw.version">
+ <term><option>--version</option></term>
+ <listitem>
+ <para>Prints the version of <command>svnversion</command>
+ and exit with no error.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="svn.ref.svnversion.re.examples">
+ <title>Examples</title>
+
+ <para>If the working copy is all at the same revision (e.g.,
+ immediately after an update), then that revision is
+ printed out:</para>
+
+ <informalexample>
+ <screen>
+$ svnversion
+4168
+</screen>
+ </informalexample>
+
+ <para>You can add <replaceable>TRAIL_URL</replaceable> to make
+ sure the working copy is not switched from what you
+ expect. Note that the <replaceable>WC_PATH</replaceable>
+ is required in this command:</para>
+
+ <informalexample>
+ <screen>
+$ svnversion . /var/svn/trunk
+4168
+</screen>
+ </informalexample>
+
+ <para>For a mixed-revision working copy, the range of
+ revisions present is printed:</para>
+
+ <informalexample>
+ <screen>
+$ svnversion
+4123:4168
+</screen>
+ </informalexample>
+
+ <para>If the working copy contains modifications, a trailing
+ '<literal>M</literal>' is added:</para>
+
+ <informalexample>
+ <screen>
+$ svnversion
+4168M
+</screen>
+ </informalexample>
+
+ <para>If the working copy is switched, a trailing
+ '<literal>S</literal>' is added:</para>
+
+ <informalexample>
+ <screen>
+$ svnversion
+4168S
+</screen>
+ </informalexample>
+
+ <para><command>svnversion</command> will also inform you if
+ the target working copy is sparsely populated (see
+ <xref linkend="svn.advanced.sparsedirs" />) by attaching the
+ '<literal>P</literal>' code to its output:</para>
+
+ <informalexample>
+ <screen>
+$ svnversion
+4168P
+</screen>
+ </informalexample>
+
+ <para>Thus, here is a mixed-revision, sparsely populated and
+ switched working copy containing some local
+ modifications:</para>
+
+ <informalexample>
+ <screen>
+$ svnversion
+4123:4168MSP
+</screen>
+ </informalexample>
+
+ </refsect1>
+
+ </refentry>
+</reference>
+
+<!--
+local variables:
+sgml-parent-document: ("book.xml" "reference")
+end:
+-->
=======================================
--- /trunk/en/book/ch09-reference.xml Tue Feb 5 08:18:19 2013
+++ /dev/null
@@ -1,12974 +0,0 @@
-<chapter id="svn.ref">
- <title>Subversion Complete Reference</title>
-
- <para>This chapter is intended to be a complete reference to using
- Subversion. It includes command summaries and examples for all
- the command-line tools provided as part of the stock Subversion
- distribution, configuration information for the Subversion server
- modules, and other information that lends itself to a reference
- format.</para>
-
- <!-- =================================================================
-->
- <!-- =================================================================
-->
- <!-- =================================================================
-->
- <sect1 id="svn.ref.svn">
- <title>svn—Subversion Command-Line Client</title>
-
- <para><command>svn</command> is the official command-line client
- of Subversion. Its functionality is offered via a collection of
- task-specific subcommands, most of which accept a number of
- options for fine-grained control of the program's
- behavior.</para>
-
- <para>When using the <command>svn</command> program, subcommands
- and other non-option arguments must appear in a specified order
- on the command line. Options, on the other hand, may appear
- anywhere on the command line (after the program name, of
- course), and in general, their order is irrelevant. For
- example, all of the following are valid ways to use <command>svn
- status</command>, and are interpreted in exactly the same
- way:</para>
-
- <informalexample>
- <screen>
-$ svn -vq status myfile
-$ svn status -v -q myfile
-$ svn -q status -v myfile
-$ svn status -vq myfile
-$ svn status myfile -qv
-</screen>
- </informalexample>
-
- <para>The following sections describe each of the various
- subcommands and options provided by the <command>svn</command>
- command-line client program, including some examples of each
- subcommand's typical uses.</para>
-
- <!-- ===============================================================
-->
- <sect2 id="svn.ref.svn.sw">
- <title>svn Options</title>
-
- <para>While Subversion has different options for its
- subcommands, all options exist in a single
- namespace—that is, each option is guaranteed to mean the
- roughly same thing regardless of the subcommand you use it
- with. For example, <option>--verbose</option>
- (<option>-v</option>) always means <quote>verbose
- output,</quote> regardless of the subcommand you use it
- with.</para>
-
- <para>The <command>svn</command> command-line client usually
- exits quickly with an error if you pass it an option which
- does not apply to the specified subcommand. But as of
- Subversion 1.5, several of the options which apply to
- all—or nearly all—of the subcommands have been
- deemed acceptable by all subcommands, even if they have no
- effect on some of them. (This change was made primarily to
- improve the client's ability to called from custom wrapping
- scripts.) These options appear grouped together in the
- command-line client's usage messages as global options, as can
- be seen in the following bit of output:</para>
-
- <informalexample>
- <screen>
-$ svn help upgrade
-upgrade: Upgrade the metadata storage format for a working copy.
-usage: upgrade [WCPATH...]
-
- Local modifications are preserved.
-
-Valid options:
- -q [--quiet] : print nothing, or only summary information
-
-Global options:
- --username ARG : specify a username ARG
- --password ARG : specify a password ARG
- --no-auth-cache : do not cache authentication tokens
- --non-interactive : do no interactive prompting
- --trust-server-cert : accept SSL server certificates from unknown
- certificate authorities without prompting
(but only
- with '--non-interactive')
- --config-dir ARG : read user configuration files from directory
ARG
- --config-option ARG : set user configuration option in the format:
- FILE:SECTION:OPTION=[VALUE]
- For example:
- servers:global:http-library=serf
-$
-</screen>
- </informalexample>
-
- <para><command>svn</command> subcommands recognize the following
- global options:</para>
-
- <variablelist>
-
- <varlistentry id="svn.ref.svn.sw.config_dir">
- <term><option>--config-dir</option>
<replaceable>DIR</replaceable></term>
- <listitem>
- <para>Instructs Subversion to read configuration
- information from the specified directory instead of the
- default location (<filename>.subversion</filename> in
- the user's home directory).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.config_option">
- <term><option>--config-option</option>
<replaceable>CONFSPEC</replaceable></term>
- <listitem>
- <para>Sets, for the duration of the command, the value of
- a runtime configuration
- option. <replaceable>CONFSPEC</replaceable> is a string
- which specifies the configuration option namespace, name
- and value that you'd like to assign, formatted as
-
<replaceable>FILE</replaceable>:<replaceable>SECTION</replaceable>:<replaceable>OPTION</replaceable>=[<replaceable>VALUE</replaceable>].
- In this syntax, <replaceable>FILE</replaceable>
- and <replaceable>SECTION</replaceable> are the runtime
- configuration file (either <literal>config</literal>
- or <literal>servers</literal>) and the section thereof,
- respectively, which contain the option whose value you
- wish to change. <replaceable>OPTION</replaceable> is,
- of course, the option itself,
- and <replaceable>VALUE</replaceable> the value (if any)
- you wish to assign to the option. For example, to
- temporarily disable the use of the automatic property
- setting feature,
- use
<option>--config-option=config:miscellany:enable-auto-props=no</option>.
- You can use this option multiple times to change
- multiple option values simultaneously.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.no_auth_cache">
- <term><option>--no-auth-cache</option></term>
- <listitem>
- <para>Prevents caching of authentication information
- (e.g., username and password) in the Subversion
- runtime configuration directories.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.non_interactive">
- <term><option>--non-interactive</option></term>
- <listitem>
- <para>Disables all interactive prompting. Some examples
- of interactive prompting include requests for
- authentication credentials and conflict resolution
- decisions. This is useful if you're running Subversion
- inside an automated script and it's more appropriate
- to have Subversion fail than to prompt for more
- information.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.password">
- <term><option>--password</option>
<replaceable>PASSWD</replaceable></term>
- <listitem>
- <para>Specifies the password to use when authenticating
- against a Subversion server. If not provided, or if
- incorrect, Subversion will prompt you for this
- information as needed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.trust_server_cert">
- <term><option>--trust-server-cert</option></term>
- <listitem>
- <para>When used with <option>--non-interactive</option>,
- instructs Subversion to accept SSL server certificates
- issued by unknown certificate authorities without first
- prompting the user. For security's sake, you should use
- this option only when the integrity of the remote server
- and the network path between it and your client is known
- to be trustworthy.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.username">
- <term><option>--username</option>
<replaceable>NAME</replaceable></term>
- <listitem>
- <para>Specifies the username to use when authenticating
- against a Subversion server. If not provided, or if
- incorrect, Subversion will prompt you for this
- information as needed.</para>
- </listitem>
- </varlistentry>
-
- </variablelist>
-
- <para>The rest of the options apply and are accepted by only a
- subset of the subcommand. They are as follows:</para>
-
- <variablelist>
-
- <varlistentry id="svn.ref.svn.sw.accept">
- <term><option>--accept</option>
<replaceable>ACTION</replaceable></term>
- <listitem>
- <para>Specifies an action for automatic conflict
- resolution, disabling the interactive prompts which ask
- the user how to handle each conflict as it is noticed.
- Though which of the specific actions are applicable
- differs depending on which subcommand is in use,
- Subversion supports the following long (and short)
- values for <replaceable>ACTION</replaceable>:</para>
- <variablelist>
- <varlistentry>
- <term><literal>postpone</literal>
- (<literal>p</literal>)</term>
- <listitem>
- <para>Take no resolution action at all and instead
- allow the conflicts to be recorded for future
- resolution.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>edit</literal>
- (<literal>e</literal>)</term>
- <listitem>
- <para>Open each conflicted file in a text editor for
- manual resolution of line-based conflicts.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>launch</literal>
- (<literal>l</literal>)</term>
- <listitem>
- <para>Launch an interactive merge conflict
- resolution tool for each conflicted file.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>base</literal></term>
- <listitem>
- <para>Choose the file that was the (unmodified)
- <literal>BASE</literal> revision before you tried
- to integrate changes from the server into
- your working copy.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>working</literal></term>
- <listitem>
- <para>Assuming that you've manually handled the
- conflict resolution, choose the version of the file
- as it currently stands in your working copy.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>mine-full</literal>
- (<literal>mf</literal>)</term>
- <listitem>
- <para>Resolve conflicted files by preserving all
- local modifications and discarding all changes
- fetched from the server during the operation which
- caused the conflict.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>theirs-full</literal>
- (<literal>tf</literal>)</term>
- <listitem>
- <para>Resolve conflicted files by discarding all
- local modifications and integrating all changes
- fetched from the server during the operation which
- caused the conflict.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>mine-conflict</literal>
- (<literal>mc</literal>)</term>
- <listitem>
- <para>Resolve conflicted files by preferring local
- modifications over the changes fetched from the
- server in conflicting regions of each file's
- content.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>theirs-conflict</literal>
- (<literal>tc</literal>)</term>
- <listitem>
- <para>Resolve conflicted files by preferring the
- changes fetched from the server over local
- modifications in conflicting regions of each file's
- content.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>Consult the output of <command>svn help
- <replaceable>SUBCOMMAND</replaceable></command> to see
- exactly which actions are supported by the specific
- subcommand of interest.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.allow_mixed_revisions">
- <term><option>--allow-mixed-revisions</option></term>
- <listitem>
- <para>Disables the verification—performed by default
- by <command>svn merge</command> as of Subversion
- 1.7—that the target of a merge operation and all
- of its children are at a uniform revision. While
- merging into a single-revision working copy target is
- the recommended best practice, this option may be used
- to permit merges into mixed-revision working copies as
- necessary.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.auto_props">
- <term><option>--auto-props</option></term>
- <listitem>
- <para>Enables automatic property assignment (per runtime
- configuration rules), overriding the
- <literal>enable-auto-props</literal> runtime
- configuration directive.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.change">
- <term><option>--change</option> (<option>-c</option>)
<replaceable>ARG</replaceable></term>
- <listitem>
- <para>Perform the requested operation using a specific
- <quote>change</quote>. Generally speaking, this option
- is syntactic sugar for <userinput>-r
-
<replaceable>ARG-1</replaceable>:<replaceable>ARG</replaceable></userinput>.
- Some subcommands permit a comma-separated list of
- revision number arguments (e.g., <userinput>-c
-
<replaceable>ARG1</replaceable>,<replaceable>ARG2</replaceable>,<replaceable>ARG3</replaceable></userinput>).
- Alternatively, you can provide two arguments separated
- by a dash (as
- in <userinput>-c
<replaceable>ARG1</replaceable>-<replaceable>ARG2</replaceable></userinput>)
- to identify the range of revisions
- between <replaceable>ARG1</replaceable>
- and <replaceable>ARG2</replaceable>, inclusive.
- Finally, if the revision argument is negated, the
- implied revision range is reversed: <userinput>-c
- -45</userinput> is equivalent to <userinput>-r
- 45:44</userinput>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.changelist">
- <term><option>--changelist</option> (<option>--cl</option>)
<replaceable>ARG</replaceable></term>
- <listitem>
- <para>Instructs Subversion to operate only on members of the
changelist named
- <replaceable>ARG</replaceable>. You can use this option
- multiple times to specify sets of changelists.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.depth">
- <term><option>--depth</option>
<replaceable>ARG</replaceable></term>
- <listitem>
- <para>Instructs Subversion to limit the scope of an
- operation to a particular tree
- depth. <replaceable>ARG</replaceable> is one of
- <literal>empty</literal> (only the target
- itself), <literal>files</literal> (the target and any
- immediate file children thereof),
- <literal>immediates</literal> (the target and any
- immediate children thereof), or
- <literal>infinity</literal> (the target and all of its
- descendants—full recursion).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.diff">
- <term><option>--diff</option></term>
- <listitem>
- <para>Enables a special output mode for <command>svn
- log</command> which includes a difference report (a
- la <command>svn diff</command>) as part of each
- revision's information.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.diff_cmd">
- <term><option>--diff-cmd</option>
<replaceable>CMD</replaceable></term>
- <listitem>
- <para>Specifies an external program to use to show
- differences between files. When <command>svn
- diff</command> is invoked without this option, it uses
- Subversion's internal differencing engine, which provides
- unified diffs by default. If you want to use an
- external differencing program, use
<option>--diff-cmd</option>.
- You can then pass options to the specified program using the
- <option>--extensions</option> (<option>-x</option>)
- option.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.diff3_cmd">
- <term><option>--diff3-cmd</option>
<replaceable>CMD</replaceable></term>
- <listitem>
- <para>Specifies an external 3-way differencing program
- (used to merge line-based changes into files).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.dry_run">
- <term><option>--dry-run</option></term>
- <listitem>
- <para>Goes through all the motions of running a command,
- but makes no actual changes—either on disk or in
- the repository.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.editor_cmd">
- <term><option>--editor-cmd</option>
<replaceable>CMD</replaceable></term>
- <listitem>
- <para>Specifies an external program to use to edit a log
message
- or a property value. See the <literal>editor-cmd</literal>
- section in <xref
linkend="svn.advanced.confarea.opts.config"/>
- for ways to specify a default editor.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.encoding">
- <term><option>--encoding</option>
<replaceable>ENC</replaceable></term>
- <listitem>
- <para>Tells Subversion that your commit message is
- composed using the character encoding provided. The
- default character encoding is derived from your
- operating system's native locale; use this option if
- your commit message is composed using any other
- encoding.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.extensions">
- <term><option>--extensions</option> (<option>-x</option>)
<replaceable>ARG</replaceable></term>
- <listitem>
- <para>Specifies customizations which Subversion should
- make when performing difference calculations. Valid
- extensions include:</para>
- <variablelist>
- <varlistentry>
- <term><option>--ignore-space-change</option>
(<option>-b</option>)</term>
- <listitem>
- <para>Ignore changes in the amount of white space.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--ignore-all-space</option>
(<option>-w</option>)</term>
- <listitem>
- <para>Ignore all white space.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--ignore-eol-style</option></term>
- <listitem>
- <para>Ignore changes in EOL (end-of-line) style.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--show-c-function</option>
(<option>-p</option>)</term>
- <listitem>
- <para>Show C function names in the diff output.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--unified</option>
(<option>-u</option>)</term>
- <listitem>
- <para>Show three lines of unified diff context.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>The default value of <replaceable>ARG</replaceable>
- is <literal>-u</literal>. If you wish to pass multiple
- arguments, you must enclose all of them in quotes.</para>
- <para>Note that when Subversion is configured to invoke an
- external diff command, the value of
- the <option>--extension</option> (<option>-x</option>)
- option isn't restricted to the previously mentioned
- options, but may be <emphasis>any</emphasis> additional
- arguments which Subversion should pass to that
command.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.file">
- <term><option>--file</option> (<option>-F</option>)
<replaceable>FILENAME</replaceable></term>
- <listitem>
- <para>Uses the contents of the named file for the
- specified subcommand. Different subcommands do
- different things with this content. For example,
- <command>svn commit</command> uses the content as a
- commit log message, whereas <command>svn
- propset</command> uses it as a property value.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.force">
- <term><option>--force</option></term>
- <listitem>
- <para>Forces a particular command or operation to run.
- Subversion will prevent you from performing some
- operations in normal usage, but you can pass this option
- to tell Subversion <quote>I know what I'm doing as well
- as the possible repercussions of doing it, so let me at
- 'em.</quote> This option is the programmatic equivalent
- of doing your own electrical work with the power
- on—if you don't know what you're doing, you're
- likely to get a nasty shock.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.force_log">
- <term><option>--force-log</option></term>
- <listitem>
- <para>Forces a suspicious parameter passed to the
- <option>--message</option> (<option>-m</option>) or
- <option>--file</option> (<option>-F</option>) option to
- be accepted as valid. By default, Subversion will
- produce an error if parameters to these options look
- like they might instead be targets of the subcommand.
- For example, if you pass a versioned file's path to the
- <option>--file</option> (<option>-F</option>) option,
- Subversion will assume you've made a mistake, that the
- path was instead intended as the target of the
- operation, and that you simply failed to provide some
- other—unversioned—file as the source of your
- log message. To assert your intent and override these
- types of errors, pass the <option>--force-log</option>
- option to subcommands that accept log messages.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.git">
- <term><option>--git</option></term>
- <listitem>
- <para>Enables a special output mode for <command>svn
- diff</command> designed for cross-compatibility with the
- popular Git distributed version control system.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.help">
- <term><option>--help</option> (<option>-h</option>,
<option>-?</option>)</term>
- <listitem>
- <para>If used with one or more subcommands, shows the
- built-in help text for each. If used alone, it displays
- the general client help text.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.ignore_ancestry">
- <term><option>--ignore-ancestry</option></term>
- <listitem>
- <para>Tells Subversion to ignore ancestry when calculating
- differences (rely on path contents alone). Also disables
- <xref linkend="svn.branchmerge.basicmerging.mergetracking"/>
- when used with the <command>svn merge</command> subcommand.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.ignore_externals">
- <term><option>--ignore-externals</option></term>
- <listitem>
- <para>Tells Subversion to ignore externals definitions and
- the external working copies managed by them.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.ignore_keywords">
- <term><option>--ignore-keywords</option></term>
- <listitem>
- <para>Disables keyword expansion.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.ignore_whitespace">
- <term><option>--ignore-whitespace</option></term>
- <listitem>
- <para>Instructs <command>svn patch</command> to ignore
- whitespace when attempting to identify patch
- context.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.incremental">
- <term><option>--incremental</option></term>
- <listitem>
- <para>Prints output in a format suitable for
- concatenation to prior similar output.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.internal_diff">
- <term><option>--internal-diff</option></term>
- <listitem>
- <para>Instructs Subversion to use its built-in
- differencing engine despite any external differencing
- mechanism that may be specified for use in the user's
- runtime configuration.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.keep_changelists">
- <term><option>--keep-changelists</option></term>
- <listitem>
- <para>Tells Subversion not to remove the changelist assigments
- from working copy items after committing.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.keep_local">
- <term><option>--keep-local</option></term>
- <listitem>
- <para>Keeps the local copy of a file or directory (used
- with the <command>svn delete</command> command).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.limit">
- <term><option>--limit</option> (<option>-l</option>)
<replaceable>NUM</replaceable></term>
- <listitem>
- <para>Shows only the first <replaceable>NUM</replaceable>
- log messages.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.message">
- <term><option>--message</option> (<option>-m</option>)
<replaceable>MESSAGE</replaceable></term>
- <listitem>
- <para>Indicates that you will specify either a log message
- or a lock comment on the command line, following this
- option. For example:</para>
-
- <informalexample>
- <screen>
-$ svn commit -m "They don't make Sunday."
-</screen>
- </informalexample>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.native_eol">
- <term><option>--native-eol</option>
<replaceable>ARG</replaceable></term>
- <listitem>
- <para>Causes <command>svn export</command> to use a
- specific end-of-line sequence as if it was the native
- sequence for the client platform.
- <replaceable>ARG</replaceable> may be one
- of <literal>CR</literal>, <literal>LF</literal>,
- or <literal>CRLF</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.new">
- <term><option>--new</option>
<replaceable>ARG</replaceable></term>
- <listitem>
- <para>Uses <replaceable>ARG</replaceable> as the newer
- target (for use with <command>svn diff</command>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.no_auto_props">
- <term><option>--no-auto-props</option></term>
- <listitem>
- <para>Disables automatic property setting, overriding the
- <literal>enable-auto-props</literal> runtime
- configuration directive.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.no_diff_deleted">
- <term><option>--no-diff-deleted</option></term>
- <listitem>
- <para>Prevents Subversion from printing differences for
- deleted files. The default behavior when you remove a
- file is for <command>svn diff</command> to print the
- same differences that you would see if you had kept
- the file but removed all of its content.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.no_ignore">
- <term><option>--no-ignore</option></term>
- <listitem>
- <para>Shows files in the status listing or adds/imports files
- that would normally be omitted since they match a pattern
- in the <literal>global-ignores</literal> configuration
- option or the <literal>svn:ignore</literal> or
- <literal>svn:global-ignores</literal>properties. See <xref
- linkend="svn.advanced.confarea.opts.config"/> and <xref
- linkend="svn.advanced.props.special.ignore"/> for more
- information.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.no_unlock">
- <term><option>--no-unlock</option></term>
- <listitem>
- <para>Tells Subversion not to automatically unlock files.
- (The default commit behavior is to unlock all files
- listed as part of the commit.) See
- <xref linkend="svn.advanced.locking"/> for more
- information.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.non_recursive">
- <term><option>--non-recursive</option>
(<option>-N</option>)</term>
- <listitem>
- <para><emphasis>Deprecated</emphasis>. Stops a subcommand
- from recursing into subdirectories. Most subcommands
- recurse by default, but some do not. Users should avoid
- this option and use the more precise <option>--depth</option>
- option instead. For most subcommands, specifying
- <option>--non-recursive</option> produces behavior which
- is the same as if you'd specified
- <option>--depth=files</option>, but there are exceptions:
- non-recursive <command>svn status</command> operates at the
- <literal>immediates</literal> depth, and the non-recursive
- forms of <command>svn revert</command>,
- <command>svn add</command>, and <command>svn commit</command>
- operate at an <literal>empty</literal> depth.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.notice_ancestry">
- <term><option>--notice-ancestry</option></term>
- <listitem>
- <para>Pays attention to ancestry when calculating
- differences.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.old">
- <term><option>--old</option>
<replaceable>ARG</replaceable></term>
- <listitem>
- <para>Uses <replaceable>ARG</replaceable> as the older
- target (for use with <command>svn diff</command>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.parents">
- <term><option>--parents</option></term>
- <listitem>
- <para>Creates and adds nonexistent or nonversioned parent
- subdirectories to the working copy or repository as part
- of an operation. This is useful for automatically
- creating multiple subdirectories where none currently
- exist. If performed on a URL, all the directories will
- be created in a single commit.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.quiet">
- <term><option>--quiet</option> (<option>-q</option>)</term>
- <listitem>
- <para>Requests that the client print only essential
- information while performing an operation.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.record_only">
- <term><option>--record-only</option></term>
- <listitem>
- <para>Enables a special mode of <command>svn
- merge</command> in which the specified merge operation is
- recorded in the local merge tracking information, but is
- not actually performed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.recursive">
- <term><option>--recursive</option> (<option>-R</option>)</term>
- <listitem>
- <para>Makes a subcommand recurse into subdirectories.
- (Most subcommands recurse by default.)</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.reintegrate">
- <term><option>--reintegrate</option></term>
- <listitem>
- <para>Deprecated. Used with the <command>svn merge</command>
- subcommand to merge changes from a feature branch back into
- the feature branch's ancestor branch. Since Subversion 1.8
- the <command>svn merge</command> subcommand automatically
- detects this scenario and performs the appropriate merge.
- See
- <xref linkend="svn.branchmerge.basicmerging.reintegrate"/>
- for details.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.relocate">
- <term><option>--relocate</option></term>
- <listitem>
- <para>Deprecated. When used with the <command>svn
- switch</command> subcommand, changes the location of the
- repository that your working copy references. The
- preferred approach as of Subversion 1.7, however, is to
- use the <command>svn relocate</command> subcommand. See
- <xref linkend="svn.ref.svn.c.relocate" /> for more
- details and an example.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.remove">
- <term><option>--remove</option></term>
- <listitem>
- <para>Used with <command>svn changelist</command> to
- disassociate—rather than associate (which is the
- default operation)—the target(s) from a
- changelist.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.reverse_diff">
- <term><option>--reverse-diff</option></term>
- <listitem>
- <para>Causes <command>svn patch</command> to interpret the
- input patch instructions in reverse—treating added
- lines as removed ones and vice-versa.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.revision">
- <term><option>--revision</option> (<option>-r</option>)
<replaceable>REV</replaceable></term>
- <listitem>
- <para>Specifies a revision (or range of revisions) on with
- which to operate. You can provide revision numbers,
- keywords, or dates (in curly braces) as arguments to the
- revision option. If you wish to offer a range of
- revisions, you can provide two revisions separated by a
- colon. For example:</para>
-
- <informalexample>
- <screen>
-$ svn log -r 1729
-$ svn log -r 1729:HEAD
-$ svn log -r 1729:1744
-$ svn log -r {2001-12-04}:{2002-02-17}
-$ svn log -r 1729:{2002-02-17}
-</screen>
- </informalexample>
-
- <para>See <xref linkend="svn.tour.revs.keywords"/> for more
- information.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.revprop">
- <term><option>--revprop</option></term>
- <listitem>
- <para>Operates on a revision property instead of a
- property specific to a file or directory. This option
- requires that you also pass a revision with the
- <option>--revision</option> (<option>-r</option>)
- option.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.set_depth">
- <term><option>--set-depth</option>
<replaceable>ARG</replaceable></term>
- <listitem>
- <para>Sets the sticky depth on a directory in a working
- copy to one of <literal>exclude</literal>,
<literal>empty</literal>,
- <literal>files</literal>, <literal>immediates</literal>,
- or <literal>infinity</literal>. For detailed coverage
- of what these mean and how to use this option, see
- <xref linkend="svn.advanced.sparsedirs" />.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.show_copies_as_adds">
- <term><option>--show-copies-as-adds</option></term>
- <listitem>
- <para>Enables a special output mode for <command>svn
- diff</command> in which the content difference for a
- file created via a copy operation appears as it would
- for a brand new file (with each line therein appearing
- as an addition to an empty file) rather than as a delta
- against the original file from which the copy was
- created.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.show_inherited_props">
- <term><option>--show-inherited-props</option></term>
- <listitem>
- <para>Causes <command>svn propget</command> and <command>
- svn proplist</command> to display the versioned properties
- inherited by the target file or directory.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.show_revs">
- <term><option>--show-revs</option>
<replaceable>ARG</replaceable></term>
- <listitem>
- <para>Used to make <command>svn mergeinfo</command>
- display certain classes of merge tracking
- information. <replaceable>ARG</replaceable> may be
- either <literal>merged</literal>
- or <literal>eligible</literal>, indicating a desire to
- see revisions either already merged or eligible for future
- merge from the specified source URL, respectively.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.show_updates">
- <term><option>--show-updates</option>
(<option>-u</option>)</term>
- <listitem>
- <para>Causes the client to display information about
- which files in your working copy are out of date.
- This doesn't actually update any of your
- files—it just shows you which files will be
- updated if you then use <command>svn update</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.stop_on_copy">
- <term><option>--stop-on-copy</option></term>
- <listitem>
- <para>Causes a Subversion subcommand that traverses
- the history of a versioned resource to stop harvesting
- that historical information when a copy—that is, a
- location in history where that resource was copied from
- another location in the repository—is
- encountered.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.strict">
- <term><option>--strict</option></term>
- <listitem>
- <para>Causes Subversion to use strict semantics, a notion
- that is rather vague unless talking about specific
- subcommands (namely, <command>svn propget</command>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.strip">
- <term><option>--strip</option>
<replaceable>NUM</replaceable></term>
- <listitem>
- <para>Used by <command>svn patch</command> to
- ignore <replaceable>NUM</replaceable> leading path
- components found on paths specified in the patch input
- file.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.summarize">
- <term><option>--summarize</option></term>
- <listitem>
- <para>Display only high-level summary notifications about
- the operation instead of its detailed output.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.targets">
- <term><option>--targets</option>
<replaceable>FILENAME</replaceable></term>
- <listitem>
- <para>Tells Subversion to read additional target paths for
- the operation from <replaceable>FILENAME</replaceable>.
- <replaceable>FILENAME</replaceable> should contain one
- path per line, with each path expected to use the same
- encoding and formatting that it would if you had
- specified it directly as an argument on the command
- line.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.use_merge_history">
- <term><option>--use-merge-history</option>
(<option>-g</option>)</term>
- <listitem>
- <para>Uses or displays additional information from merge
- history.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.verbose">
- <term><option>--verbose</option> (<option>-v</option>)</term>
- <listitem>
- <para>Requests that the client print out as much
- information as it can while running any subcommand.
- This may result in Subversion printing out additional
- fields, detailed information about every file, or
- additional information regarding its actions.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="svn.ref.svn.sw.version">
- <term><option>--version</option></term>
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/en/book/book.xml Fri Jan 25 10:50:35 2013
+++ /trunk/en/book/book.xml Tue Feb 5 13:51:43 2013
@@ -3,8 +3,12 @@
[
<!ENTITY % vers SYSTEM "version.xml">
%vers;
+
+<!-- Foreward, Preface, etc. -->
<!ENTITY foreword SYSTEM "foreword.xml">
<!ENTITY ch00 SYSTEM "ch00-preface.xml">
+
+<!-- Part I: Getting to Know Subversion -->
<!ENTITY ch01 SYSTEM "ch01-fundamental-concepts.xml">
<!ENTITY ch02 SYSTEM "ch02-basic-usage.xml">
<!ENTITY ch03 SYSTEM "ch03-advanced-topics.xml">
@@ -14,9 +18,27 @@
<!ENTITY ch07 SYSTEM "ch07-customizing-svn.xml">
<!ENTITY ch08 SYSTEM "ch08-embedding-svn.xml">
<!ENTITY ch09 SYSTEM "ch09-reference.xml">
+
+<!-- Part II: References -->
+<!ENTITY refsvn SYSTEM "ref-svn.xml">
+<!ENTITY refsvnadmin SYSTEM "ref-svnadmin.xml">
+<!ENTITY refsvnlook SYSTEM "ref-svnlook.xml">
+<!ENTITY refsvnsync SYSTEM "ref-svnsync.xml">
+<!ENTITY refsvnrdump SYSTEM "ref-svnrdump.xml">
+<!ENTITY refsvnserve SYSTEM "ref-svnserve.xml">
+<!ENTITY refsvndumpfilter SYSTEM "ref-svndumpfilter.xml">
+<!ENTITY refsvnversion SYSTEM "ref-svnversion.xml">
+<!ENTITY refsvnmucc SYSTEM "ref-svnmucc.xml">
+<!ENTITY refdavmodules SYSTEM "ref-davmodules.xml">
+<!ENTITY refprops SYSTEM "ref-props.xml">
+<!ENTITY refreposhooks SYSTEM "ref-reposhooks.xml">
+
+<!-- Part III: Appendixes -->
<!ENTITY appa SYSTEM "appa-quickstart.xml">
<!ENTITY appb SYSTEM "appb-svn-for-cvs-users.xml">
<!ENTITY appc SYSTEM "appc-webdav.xml">
+
+<!-- Other Stuff -->
<!ENTITY license SYSTEM "copyright.xml">
<!ENTITY index SYSTEM "index.xml">
]>
@@ -96,18 +118,54 @@
&foreword;
&ch00;
- &ch01;
- &ch02;
- &ch03;
- &ch04;
- &ch05;
- &ch06;
- &ch07;
- &ch08;
- &ch09;
- &appa;
- &appb;
- &appc;
+
+ <part id="svn.content">
+ <title>Getting to Know Subversion</title>
+
+ &ch01;
+ &ch02;
+ &ch03;
+ &ch04;
+ &ch05;
+ &ch06;
+ &ch07;
+ &ch08;
+ </part>
+
+ <part id="svn.ref">
+ <title>Subversion Complete Reference</title>
+
+ <partintro>
+ <para>This portion of the book is intended to be a complete
+ reference to using Subversion. It includes command summaries
+ and examples for all the command-line tools provided as part
+ of the stock Subversion distribution, configuration
+ information for the Subversion server modules, and other
+ information that lends itself to a reference format.</para>
+ </partintro>
+
+ &refsvn;
+ &refsvnadmin;
+ &refsvnlook;
+ &refsvnserve;
+ &refsvnversion;
+ &refsvnsync;
+ &refsvnrdump;
+ &refsvndumpfilter;
+ &refsvnmucc;
+ &refdavmodules;
+ &refprops;
+ &refreposhooks;
+ </part>
+
+ <part id="svn.apps">
+ <title>Appendixes</title>
+
+ &appa;
+ &appb;
+ &appc;
+ </part>
+
&license;
&index;
=======================================
--- /trunk/en/book/styles.css Fri Feb 1 10:14:56 2013
+++ /trunk/en/book/styles.css Tue Feb 5 13:51:43 2013
@@ -85,7 +85,13 @@
strong {
font-weight: normal;
}
-.toc b {
+.toc {
+ border-top: 1px solid black;
+}
+.book .toc {
+ border: 0px;
+}
+.toc strong, .toc b {
font-family: sans-serif;
font-size: 120%;
font-style: normal;
More information about the svnbook-dev
mailing list