Sophie

Sophie

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

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

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>svnmucc</title>
    <link rel="stylesheet" type="text/css" href="styles.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.76.1" />
    <style type="text/css">
body { background-image: url('images/draft.png');
       background-repeat: no-repeat;
       background-position: top left;
       /* The following properties make the watermark "fixed" on the page. */
       /* I think that's just a bit too distracting for the reader... */
       /* background-attachment: fixed; */
       /* background-position: center center; */
     }</style>
    <link rel="home" href="index.html" title="Version Control with Subversion [DRAFT]" />
    <link rel="up" href="svn.ref.svnmucc.html" title="svnmucc Reference—Subversion Multiple URL Command Client" />
    <link rel="prev" href="svn.ref.svnmucc.html" title="svnmucc Reference—Subversion Multiple URL Command Client" />
    <link rel="next" href="svn.ref.reposhooks.html" title="Subversion Repository Hook Reference" />
  </head>
  <body>
    <div xmlns="" id="vcws-version-notice">
      <p>This text is a work in progress—highly subject to
       change—and may not accurately describe any released
       version of the Apache™ Subversion® software.
       Bookmarking or otherwise referring others to this page is
       probably not such a smart idea.  Please visit
       <a href="http://www.svnbook.com/">http://www.svnbook.com/</a>
       for stable versions of this book.</p>
    </div>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">svnmucc</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="svn.ref.svnmucc.html">Prev</a> </td>
          <th width="60%" align="center">svnmucc Reference—Subversion Multiple URL Command Client</th>
          <td width="20%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="refentry" title="svnmucc">
      <a id="svn.ref.svnmucc.re"></a>
      <div class="titlepage"></div>
      <a id="idp25690096" class="indexterm"></a>
      <div class="refnamediv">
        <h2>Name</h2>
        <p>svnmucc — Perform one or more Subversion repository
        URL-based ACTIONs, committing the result as a (single) new
        revision.</p>
      </div>
      <div class="refsynopsisdiv" title="Synopsis">
        <h2>Synopsis</h2>
        <p>
          <code class="literal">svnmucc ACTION...</code>
        </p>
      </div>
      <div class="refsect1" title="Description">
        <a id="svn.ref.svnmucc.re.desc"></a>
        <h2>Description</h2>
        <p><span class="command"><strong>svnmucc</strong></span> 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 <span class="command"><strong>svnmucc</strong></span>
        attempts one or more <em class="replaceable"><code>ACTION</code></em>s,
        atomically committing the results of those combined
        <em class="replaceable"><code>ACTION</code></em>s as a single new
        revision.</p>
      </div>
      <div class="refsect1" title="Actions">
        <a id="svn.ref.svnmucc.re.actions"></a>
        <h2>Actions</h2>
        <p><span class="command"><strong>svnmucc</strong></span> supports the following
        actions (and related arguments), which may be combined into
        ordered sequences on the command line:</p>
        <div class="variablelist">
          <dl>
            <dt>
              <span class="term">cp <em class="replaceable"><code>REV</code></em>
            <em class="replaceable"><code>SRC-URL</code></em> 
            <em class="replaceable"><code>DST-URL</code></em></span>
            </dt>
            <dd>
              <p>Copy the file or directory located
              at <em class="replaceable"><code>SRC-URL</code></em> in
              revision <em class="replaceable"><code>REV</code></em>
              to <em class="replaceable"><code>DST-URL</code></em>.</p>
            </dd>
            <dt>
              <span class="term">mkdir <em class="replaceable"><code>URL</code></em></span>
            </dt>
            <dd>
              <p>Create a new directory at <em class="replaceable"><code>URL</code></em>.
              The parent directory of <em class="replaceable"><code>URL</code></em>
              must already exist (or have been created by a
              prior <span class="command"><strong>svnmucc</strong></span> action), as this
              command does not offer the ability to automatically
              create any missing intermediate parent
              directories.</p>
            </dd>
            <dt>
              <span class="term">mv <em class="replaceable"><code>SRC-URL</code></em> 
            <em class="replaceable"><code>DST-URL</code></em></span>
            </dt>
            <dd>
              <p>Move the file or directory located
              at <em class="replaceable"><code>SRC-URL</code></em> to
              <em class="replaceable"><code>DST-URL</code></em>.</p>
            </dd>
            <dt>
              <span class="term">rm <em class="replaceable"><code>URL</code></em></span>
            </dt>
            <dd>
              <p>Delete the file or directory located
              at <em class="replaceable"><code>URL</code></em>.</p>
            </dd>
            <dt>
              <span class="term">put <em class="replaceable"><code>SRC-FILE</code></em>
            <em class="replaceable"><code>URL</code></em></span>
            </dt>
            <dd>
              <p>Add a new file—or modify an existing
              one—located at <em class="replaceable"><code>URL</code></em>,
              copying the contents of the local file
              <em class="replaceable"><code>SRC-FILE</code></em> as the new contents
              of the created or modified file.  As a special
              consideration, <em class="replaceable"><code>SRC-FILE</code></em> may
              be <code class="literal">-</code> to instruct
              <span class="command"><strong>svnmucc</strong></span> to read from standard input
              rather than a local filesystem file.</p>
            </dd>
            <dt>
              <span class="term">propset <em class="replaceable"><code>NAME</code></em>
            <em class="replaceable"><code>VALUE</code></em>
            <em class="replaceable"><code>URL</code></em></span>
            </dt>
            <dd>
              <p>Set the value of the
              property <em class="replaceable"><code>NAME</code></em> on the
              target <em class="replaceable"><code>URL</code></em>
              to <em class="replaceable"><code>VALUE</code></em>.</p>
            </dd>
            <dt>
              <span class="term">propsetf <em class="replaceable"><code>NAME</code></em>
            <em class="replaceable"><code>FILE</code></em>
            <em class="replaceable"><code>URL</code></em></span>
            </dt>
            <dd>
              <p>Set the value of the
              property <em class="replaceable"><code>NAME</code></em> on the
              target <em class="replaceable"><code>URL</code></em>
              to the contents of the file
              <em class="replaceable"><code>FILE</code></em>.</p>
            </dd>
            <dt>
              <span class="term">propdel <em class="replaceable"><code>NAME</code></em>
            <em class="replaceable"><code>URL</code></em></span>
            </dt>
            <dd>
              <p>Delete the property <em class="replaceable"><code>NAME</code></em>
              from the target <em class="replaceable"><code>URL</code></em>.</p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1" title="Options">
        <a id="svn.ref.svnmucc.re.sw"></a>
        <h2>Options</h2>
        <p>Options specified on the <span class="command"><strong>svnmucc</strong></span>
        command line are global to all actions performed by that
        command line.  The following is a list of the options
        supported by this tool:</p>
        <div class="variablelist">
          <dl>
            <dt>
              <span class="term"><code class="option">--config-dir</code>
            <em class="replaceable"><code>DIR</code></em></span>
            </dt>
            <dd>
              <p>Read configuration information from the specified
              directory instead of the default location
              (<code class="filename">.subversion</code> in the user's home
              directory).</p>
            </dd>
            <dt>
              <span class="term"><code class="option">--config-option</code>
            <em class="replaceable"><code>CONFSPEC</code></em></span>
            </dt>
            <dd>
              <p>Set, for the duration of the command, the value
              of a runtime configuration option.
              <em class="replaceable"><code>CONFSPEC</code></em> is a
              string which specifies the configuration option
              namespace, name and value that you'd like to assign,
              formatted as
              <em class="replaceable"><code>FILE</code></em>:<em class="replaceable"><code>SECTION</code></em>:<em class="replaceable"><code>OPTION</code></em>=[<em class="replaceable"><code>VALUE</code></em>].
              In this syntax, <em class="replaceable"><code>FILE</code></em>
              and <em class="replaceable"><code>SECTION</code></em> are the runtime
              configuration file (either <code class="literal">config</code>
              or <code class="literal">servers</code>) and the section
              thereof, respectively, which contain the option whose
              value you wish to
              change.  <em class="replaceable"><code>OPTION</code></em> is, of
              course, the option itself,
              and <em class="replaceable"><code>VALUE</code></em> 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 <code class="option">--config-option=config:miscellany:enable-auto-props=no</code>.
              You can use this option multiple times to change
              multiple option values simultaneously.</p>
            </dd>
            <dt>
              <span class="term"><code class="option">--extra-args</code> (<code class="option">-X</code>)
            <em class="replaceable"><code>ARGFILE</code></em></span>
            </dt>
            <dd>
              <p>Read additional would-be command-line arguments
              from <em class="replaceable"><code>ARGFILE</code></em>, one argument
              per line.  As a special consideration,
              <em class="replaceable"><code>ARGFILE</code></em> may be
              <code class="literal">-</code> to indicate that additional
              arguments should be read instead from standard
              input.</p>
            </dd>
            <dt>
              <span class="term"><code class="option">--file</code> (<code class="option">-F</code>)
            <em class="replaceable"><code>MSGFILE</code></em></span>
            </dt>
            <dd>
              <p>Use the contents of the <em class="replaceable"><code>MSGFILE</code></em>
               as the log message for the commit.</p>
            </dd>
            <dt>
              <span class="term"><code class="option">--help</code> (<code class="option">-h</code>,
            <code class="option">-?</code>)</span>
            </dt>
            <dd>
              <p>Show program usage information and exit.</p>
            </dd>
            <dt>
              <span class="term"><code class="option">--message</code> (<code class="option">-m</code>)
            <em class="replaceable"><code>MSG</code></em></span>
            </dt>
            <dd>
              <p>Use <em class="replaceable"><code>MSG</code></em> as the log
               message for the commit.</p>
            </dd>
            <dt>
              <span class="term">
                <code class="option">--no-auth-cache</code>
              </span>
            </dt>
            <dd>
              <p>Prevent caching of authentication information
              (e.g., username and password) in the Subversion
              runtime configuration directories.</p>
            </dd>
            <dt>
              <span class="term">
                <code class="option">--non-interactive</code>
              </span>
            </dt>
            <dd>
              <p>Disable all interactive prompting (e.g., requests
              for authentication credentials).</p>
            </dd>
            <dt>
              <span class="term"><code class="option">--revision</code> (<code class="option">-r</code>)
            <em class="replaceable"><code>REV</code></em></span>
            </dt>
            <dd>
              <p>Use revision <em class="replaceable"><code>REV</code></em> as the
              baseline revision for all changes made via
              the <span class="command"><strong>svnmucc</strong></span> 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.</p>
            </dd>
            <dt>
              <span class="term"><code class="option">--root-url</code> (<code class="option">-U</code>)
            <em class="replaceable"><code>ROOT-URL</code></em></span>
            </dt>
            <dd>
              <p>Use <em class="replaceable"><code>ROOT-URL</code></em> 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 <span class="command"><strong>svn info</strong></span>).
              It can be any URL common to the various targets which
              are specified in the <span class="command"><strong>svnmucc</strong></span>
              actions.</p>
            </dd>
            <dt>
              <span class="term"><code class="option">--password</code> (<code class="option">-p</code>)
            <em class="replaceable"><code>PASSWD</code></em></span>
            </dt>
            <dd>
              <p>Use <em class="replaceable"><code>PASSWD</code></em> as the
              password when authenticating against a Subversion
              server.  If not provided, or if incorrect, Subversion
              will prompt you for this information as needed.</p>
            </dd>
            <dt>
              <span class="term"><code class="option">--username</code>
            <em class="replaceable"><code>NAME</code></em></span>
            </dt>
            <dd>
              <p>Use <em class="replaceable"><code>USERNAME</code></em> as the
              username when authenticating against a Subversion
              server.  If not provided, or if incorrect, Subversion
              will prompt you for this information as needed.</p>
            </dd>
            <dt>
              <span class="term">
                <code class="option">--version</code>
              </span>
            </dt>
            <dd>
              <p>Display the program's version information and
              exit.</p>
            </dd>
            <dt>
              <span class="term"><code class="option">--with-revprop</code>
            <em class="replaceable"><code>NAME</code></em>=<em class="replaceable"><code>VALUE</code></em></span>
            </dt>
            <dd>
              <p>Set the value of the revision property
              <em class="replaceable"><code>NAME</code></em> to
              <em class="replaceable"><code>VALUE</code></em> on the committed
              revision.</p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1" title="Examples">
        <a id="svn.ref.svnmucc.re.examples"></a>
        <h2>Examples</h2>
        <p>To (safely) modify a file's contents without using a
        working copy, use <span class="command"><strong>svn cat</strong></span> to fetch the
        current contents of the file, and <span class="command"><strong>svnmucc
        put</strong></span> to commit the edited contents thereof.</p>
        <div class="informalexample">
          <pre class="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} &gt; /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
</pre>
        </div>
        <p>Apply a similar approach to change a file or directory
        property.  Simply use <span class="command"><strong>svnmucc propget</strong></span>
        and <span class="command"><strong>svnmucc propsetf</strong></span> instead
        of <span class="command"><strong>svn cat</strong></span> and <span class="command"><strong>svnmucc
        put</strong></span>, respectively.</p>
        <div class="informalexample">
          <pre class="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} &gt; /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
</pre>
        </div>
        <p>Let's look now at some multi-operation examples.</p>
        <p>To implement a <span class="quote">“<span class="quote">moving tag</span>”</span>, where a single
        tag name is recycled to point to different snapshots (for
        example, the current latest stable version) of a codebase,
        use <span class="command"><strong>svnmucc rm</strong></span> and <span class="command"><strong>svnmucc
        cp</strong></span>:</p>
        <div class="informalexample">
          <pre class="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
$ 
</pre>
        </div>
        <p>In the previous example, we slyly introduced the use of
        the <code class="option">--root-url (-U)</code> option.  Use this
        option to specify a base URL to which all other operand URLs
        are treated as relative (and save yourself some
        typing).</p>
        <p>The following shows an example of using
        <span class="command"><strong>svnmucc</strong></span> 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.</p>
        <div class="informalexample">
          <pre class="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.
$ 
</pre>
        </div>
        <p>The previous example demonstrates not only how to do
        several different things in a single <span class="command"><strong>svnmucc</strong></span>
        invocation, but also the use of standard input as the source
        of new file contents.  Note the presence of <code class="literal">--</code>
        to indicate that no more options follow on the command line.
        This is required so that the bare <code class="literal">-</code> used
        in the <span class="command"><strong>svnmucc put</strong></span> action won't be
        flagged as a malformed option indicator.</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="svn.ref.svnmucc.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="svn.ref.svnmucc.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">svnmucc Reference—Subversion Multiple URL Command Client </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Subversion Repository Hook Reference</td>
        </tr>
      </table>
    </div>
    <div xmlns="" id="vcws-footer">
      <hr />
      <img src="images/cc-by.png" style="float: right;" />
      <p>You are reading <em>Version Control with Subversion</em> (for
       Subversion 1.8), by Ben Collins-Sussman, Brian W. Fitzpatrick,
       and C. Michael Pilato.</p>
      <p>This work is licensed under
       the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.</p>
      <p>To submit comments, corrections, or other contributions to the
       text, please visit <a href="http://www.svnbook.com/">http://www.svnbook.com/</a>.</p>
    </div>
  </body>
</html>