17.1.1 nws docs
This commit is contained in:
parent
bc15976351
commit
0185cf560b
284 changed files with 78354 additions and 0 deletions
Binary file not shown.
BIN
docs/pdf/A2_SVD_OB17.1.1.pdf
Normal file
BIN
docs/pdf/A2_SVD_OB17.1.1.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/pdf/AWP.FT.SWCTR.ADE-16.00.pdf
Normal file
BIN
docs/pdf/AWP.FT.SWCTR.ADE-16.00.pdf
Normal file
Binary file not shown.
Binary file not shown.
BIN
docs/pdf/AWP.RLSN.OB17.1.1 - FINAL.pdf
Normal file
BIN
docs/pdf/AWP.RLSN.OB17.1.1 - FINAL.pdf
Normal file
Binary file not shown.
BIN
docs/pdf/NWS_Documentation/A2_SVD_OB17.1.1.xls
Normal file
BIN
docs/pdf/NWS_Documentation/A2_SVD_OB17.1.1.xls
Normal file
Binary file not shown.
BIN
docs/pdf/NWS_Documentation/AWP.DSN.A2.SSDD-08.00.zip
Normal file
BIN
docs/pdf/NWS_Documentation/AWP.DSN.A2.SSDD-08.00.zip
Normal file
Binary file not shown.
Binary file not shown.
BIN
docs/pdf/NWS_Documentation/GFE Migration/D2DGridsinGFE.docx
Normal file
BIN
docs/pdf/NWS_Documentation/GFE Migration/D2DGridsinGFE.docx
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/pdf/NWS_Documentation/GFE Migration/Links/gfePorter.docx
Normal file
BIN
docs/pdf/NWS_Documentation/GFE Migration/Links/gfePorter.docx
Normal file
Binary file not shown.
Binary file not shown.
BIN
docs/pdf/NWS_Documentation/LDM Ingest/LDM Ingest Checklist.docx
Normal file
BIN
docs/pdf/NWS_Documentation/LDM Ingest/LDM Ingest Checklist.docx
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,108 @@
|
|||
<?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>svnadmin list-unused-dblogs</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.list-dblogs.html" title="svnadmin list-dblogs" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.load.html" title="svnadmin load" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin list-unused-dblogs</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.list-dblogs.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.load.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin list-unused-dblogs">
|
||||
<a id="svn.ref.svnadmin.c.list-unused-dblogs"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43727536" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin list-unused-dblogs — Ask Berkeley DB which logfiles can be safely
|
||||
deleted (applies only to repositories using the
|
||||
<code class="literal">bdb</code> backend).</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43731424"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin list-unused-dblogs REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43733056"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Berkeley DB creates logs of all changes to the
|
||||
repository, which allow it to recover in the face of
|
||||
catastrophe. Unless you enable
|
||||
<code class="literal">DB_LOG_AUTOREMOVE</code>, the logfiles
|
||||
accumulate, although most are no longer used and can be
|
||||
deleted to reclaim disk space. See <a class="xref" href="svn.reposadmin.maint.html#svn.reposadmin.maint.diskspace" title="Managing Disk Space">the section called “Managing Disk Space”</a> for more
|
||||
information.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43735984"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>Remove all unused logfiles from the repository:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="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!
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.list-dblogs.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.load.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin list-dblogs </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin load</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,110 @@
|
|||
<?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>svnlook propget</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnlook.html#svn.ref.svnlook.c" title="svnlook Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnlook.c.log.html" title="svnlook log" />
|
||||
<link rel="next" href="svn.ref.svnlook.c.proplist.html" title="svnlook proplist" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnlook propget</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.log.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnlook Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.proplist.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnlook propget">
|
||||
<a id="svn.ref.svnlook.c.propget"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44119760" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnlook propget, pget, pg — Print the raw value of a property on a path in
|
||||
the repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp44123744"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnlook propget REPOS_PATH PROPNAME [PATH_IN_REPOS]</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44125392"></a>
|
||||
<h2>Description</h2>
|
||||
<p>List the value of a property on a path in the
|
||||
repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp44126656"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--revision (-r) REV
|
||||
--revprop
|
||||
--transaction (-t) TXN
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp44128560"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>This shows the value of the <span class="quote">“<span class="quote">seasonings</span>”</span> property
|
||||
on the file <code class="filename">/trunk/sandwich</code> in the
|
||||
<code class="literal">HEAD</code> revision:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnlook pg /var/svn/repos seasonings /trunk/sandwich
|
||||
mustard
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.log.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnlook.html#svn.ref.svnlook.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.proplist.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnlook log </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnlook proplist</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,113 @@
|
|||
<?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>svnadmin rmtxns</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.rmlocks.html" title="svnadmin rmlocks" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.setlog.html" title="svnadmin setlog" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin rmtxns</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.rmlocks.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.setlog.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin rmtxns">
|
||||
<a id="svn.ref.svnadmin.c.rmtxns"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43825024" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin rmtxns — Delete transactions from a repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43828112"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin rmtxns REPOS_PATH TXN_NAME...</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43829744"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Delete outstanding transactions from a repository.
|
||||
This is covered in detail in <a class="xref" href="svn.reposadmin.maint.html#svn.reposadmin.maint.diskspace.deadtxns" title="Removing dead transactions">the section called “Removing dead transactions”</a>.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43831760"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--quiet (-q)
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43833632"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>Remove named transactions:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin rmtxns /var/svn/repos/ 1w 1x
|
||||
</pre>
|
||||
</div>
|
||||
<p>Fortunately, the output of <span class="command"><strong>lstxns</strong></span>
|
||||
works great as the input for <span class="command"><strong>rmtxns</strong></span>:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin rmtxns /var/svn/repos/ `svnadmin lstxns /var/svn/repos/`
|
||||
</pre>
|
||||
</div>
|
||||
<p>This removes all uncommitted transactions from
|
||||
your repository.</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.svnadmin.c.rmlocks.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.setlog.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin rmlocks </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin setlog</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,131 @@
|
|||
<?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>svnadmin setlog</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.rmtxns.html" title="svnadmin rmtxns" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.setrevprop.html" title="svnadmin setrevprop" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin setlog</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.rmtxns.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.setrevprop.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin setlog">
|
||||
<a id="svn.ref.svnadmin.c.setlog"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43840656" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin setlog — Set the log message on a revision.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43843744"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin setlog REPOS_PATH -r REVISION FILE</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43845392"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Set the log message on
|
||||
revision <em class="replaceable"><code>REVISION</code></em> to the
|
||||
contents of <em class="replaceable"><code>FILE</code></em>.</p>
|
||||
<p>This is similar to using <span class="command"><strong>svn propset</strong></span>
|
||||
with the <code class="option">--revprop</code> option to set the <code class="literal">svn:log</code> property
|
||||
on a revision, except that you can also use the option
|
||||
<code class="option">--bypass-hooks</code> to avoid running any pre-
|
||||
or post-commit hooks, which is useful if the modification
|
||||
of revision properties has not been enabled in
|
||||
the <code class="literal">pre-revprop-change</code> hook.</p>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Revision properties are not under version control,
|
||||
so this command will permanently overwrite the previous
|
||||
log message.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43852176"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--bypass-hooks
|
||||
--revision (-r) REV
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43854064"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>Set the log message for revision 19 to the contents of
|
||||
the file <code class="filename">msg</code>:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin setlog /var/svn/repos/ -r 19 msg
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.rmtxns.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.setrevprop.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin rmtxns </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin setrevprop</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,213 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Overview</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<style type="text/css">
|
||||
body { background-image: url('images/draft.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: top left;
|
||||
/* The following properties make the watermark "fixed" on the page. */
|
||||
/* I think that's just a bit too distracting for the reader... */
|
||||
/* background-attachment: fixed; */
|
||||
/* background-position: center center; */
|
||||
}</style>
|
||||
<link rel="home" href="index.html" title="Version Control with Subversion [DRAFT]" />
|
||||
<link rel="up" href="svn.serverconfig.html" title="Chapter 6. Server Configuration" />
|
||||
<link rel="prev" href="svn.serverconfig.html" title="Chapter 6. Server Configuration" />
|
||||
<link rel="next" href="svn.serverconfig.choosing.html" title="Choosing a Server Configuration" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Overview</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.serverconfig.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 6. Server Configuration</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.serverconfig.choosing.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Overview">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.serverconfig.overview"></a>Overview</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Subversion was designed with an abstract repository access layer.
|
||||
This means that a repository can be programmatically accessed by
|
||||
any sort of server process, and the client <span class="quote">“<span class="quote">repository
|
||||
access</span>”</span> API allows programmers to write plug-ins that
|
||||
speak relevant network protocols. In theory, Subversion can use
|
||||
an infinite number of network implementations. In practice,
|
||||
there are only two Subversion servers in widespread use today.</p>
|
||||
<p>Apache is an extremely popular web server; using the
|
||||
<span class="command"><strong>mod_dav_svn</strong></span> module, Apache can access a
|
||||
repository and make it available to clients via the
|
||||
WebDAV/DeltaV protocol, which is an extension of HTTP. Because
|
||||
Apache is an extremely extensible server, it provides a number
|
||||
of features <span class="quote">“<span class="quote">for free,</span>”</span> such as encrypted SSL
|
||||
communication, logging, integration with a number of third-party
|
||||
authentication systems, and limited built-in web browsing of
|
||||
repositories.</p>
|
||||
<p>In the other corner is <span class="command"><strong>svnserve</strong></span>: a small,
|
||||
lightweight server program that speaks a custom protocol with
|
||||
clients. Because its protocol is explicitly designed for
|
||||
Subversion and is stateful (unlike HTTP), it provides
|
||||
significantly faster network operations—but at the cost of
|
||||
some features as well. While it can use SASL to provide a
|
||||
variety of authentication and encryption options, it has no
|
||||
logging or built-in web browsing. It is, however, extremely
|
||||
easy to set up and is often the best option for small teams just
|
||||
starting out with Subversion.</p>
|
||||
<p>The network protocol which <span class="command"><strong>svnserve</strong></span>
|
||||
speaks may also be tunneled over an SSH connection. This
|
||||
deployment option for <span class="command"><strong>svnserve</strong></span> differs quite
|
||||
a bit in features from a traditional <span class="command"><strong>svnserve</strong></span>
|
||||
deployment. SSH is used to encrypt all communication. SSH is
|
||||
also used exclusively to authenticate, so real system accounts
|
||||
are required on the server host (unlike
|
||||
vanilla <span class="command"><strong>svnserve</strong></span>, which has its own private
|
||||
user accounts). Finally, because this setup requires that each
|
||||
user spawn a private, temporary <span class="command"><strong>svnserve</strong></span>
|
||||
process, it's equivalent (from a permissions point of view) to
|
||||
allowing a group of local users to all access the repository
|
||||
via <code class="literal">file://</code> URLs. Path-based access control
|
||||
has no meaning, since each user is accessing the repository
|
||||
database files directly.</p>
|
||||
<p><a class="xref" href="svn.serverconfig.overview.html#svn.serverconfig.overview.tbl-1" title="Table 6.1. Comparison of subversion server options">Table 6.1, “Comparison of subversion server options”</a> provides a
|
||||
quick summary of the three typical server deployments.</p>
|
||||
<div class="table">
|
||||
<a id="svn.serverconfig.overview.tbl-1"></a>
|
||||
<p class="title">
|
||||
<b>Table 6.1. Comparison of subversion server options</b>
|
||||
</p>
|
||||
<div class="table-contents">
|
||||
<table summary="Comparison of subversion server options" border="1">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col />
|
||||
<col />
|
||||
<col />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Feature</th>
|
||||
<th>Apache + mod_dav_svn</th>
|
||||
<th>svnserve</th>
|
||||
<th>svnserve over SSH</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Authentication options</td>
|
||||
<td>HTTP Basic or Digest auth, X.509 certificates, LDAP,
|
||||
NTLM, or any other mechanism available to Apache httpd</td>
|
||||
<td>CRAM-MD5 by default; LDAP, NTLM, or any other mechanism
|
||||
available to SASL</td>
|
||||
<td>SSH</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>User account options</td>
|
||||
<td>Private <span class="quote">“<span class="quote">users</span>”</span> file, or other mechanisms
|
||||
available to Apache httpd (LDAP, SQL, etc.)</td>
|
||||
<td>Private <span class="quote">“<span class="quote">users</span>”</span> file, or other
|
||||
mechanisms available to SASL (LDAP, SQL, etc.)</td>
|
||||
<td>System accounts</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Authorization options</td>
|
||||
<td>Read/write access can be granted over the whole
|
||||
repository, or specified per path</td>
|
||||
<td>Read/write access can be granted over the whole
|
||||
repository, or specified per path</td>
|
||||
<td>Read/write access only grantable over the whole
|
||||
repository</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Encryption</td>
|
||||
<td>Available via optional SSL (https)</td>
|
||||
<td>Available via optional SASL features</td>
|
||||
<td>Inherent in SSH connection</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Logging</td>
|
||||
<td>High-level operational logging of Subversion
|
||||
operations plus detailed logging at the
|
||||
per-HTTP-request level</td>
|
||||
<td>High-level operational logging only</td>
|
||||
<td>High-level operational logging only</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Interoperability</td>
|
||||
<td>Accessible by other WebDAV clients</td>
|
||||
<td>Talks only to svn clients</td>
|
||||
<td>Talks only to svn clients</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Web viewing</td>
|
||||
<td>Limited built-in support, or via third-party tools
|
||||
such as ViewVC</td>
|
||||
<td>Only via third-party tools such as ViewVC</td>
|
||||
<td>Only via third-party tools such as ViewVC</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Master-slave server replication</td>
|
||||
<td>Transparent write-proxying available from slave to
|
||||
master</td>
|
||||
<td>Can only create read-only slave servers</td>
|
||||
<td>Can only create read-only slave servers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Speed</td>
|
||||
<td>Somewhat slower</td>
|
||||
<td>Somewhat faster</td>
|
||||
<td>Somewhat faster</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Initial setup</td>
|
||||
<td>Somewhat complex</td>
|
||||
<td>Extremely simple</td>
|
||||
<td>Moderately simple</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<br class="table-break" />
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.serverconfig.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.serverconfig.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.serverconfig.choosing.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">Chapter 6. Server Configuration </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Choosing a Server Configuration</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,363 @@
|
|||
<?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>Revision Specifiers</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.advanced.html" title="Chapter 3. Advanced Topics" />
|
||||
<link rel="prev" href="svn.advanced.html" title="Chapter 3. Advanced Topics" />
|
||||
<link rel="next" href="svn.advanced.pegrevs.html" title="Peg and Operative Revisions" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Revision Specifiers</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.advanced.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 3. Advanced Topics</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.advanced.pegrevs.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Revision Specifiers">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.tour.revs.specifiers"></a>Revision Specifiers</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>As we described in <a class="xref" href="svn.basic.in-action.html#svn.basic.in-action.revs" title="Revisions">the section called “Revisions”</a>, revision numbers in Subversion are pretty
|
||||
straightforward—integers that keep getting larger as you
|
||||
commit more changes to your versioned data. Still, it doesn't
|
||||
take long before you can no longer remember exactly what
|
||||
happened in each and every revision. Fortunately, the typical
|
||||
Subversion workflow doesn't often demand that you supply
|
||||
arbitrary revisions to the Subversion operations you perform.
|
||||
For operations that <span class="emphasis"><em>do</em></span> require a revision
|
||||
specifier, you generally supply a revision number that you saw
|
||||
in a commit email, in the output of some other Subversion
|
||||
operation, or in some other context that would give meaning to
|
||||
that particular number.</p>
|
||||
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Note">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Note]" src="images/note.png" />
|
||||
</td>
|
||||
<th align="left">Note</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Referring to revision numbers with
|
||||
an <span class="quote">“<span class="quote"><code class="literal">r</code></span>”</span> prefix
|
||||
(<code class="literal">r314</code>, for example) is an established
|
||||
practice in Subversion communities, and is both supported and
|
||||
encouraged by many Subversion-related tools. In most places
|
||||
where you would specify a bare revision number on the command
|
||||
line, you may also use
|
||||
the <code class="literal">r</code><em class="replaceable"><code>NNN</code></em>
|
||||
syntax.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p>But occasionally, you need to pinpoint a moment in time for
|
||||
which you don't already have a revision number memorized or
|
||||
handy. So besides the integer revision numbers,
|
||||
<span class="command"><strong>svn</strong></span> allows as input some additional forms of
|
||||
revision specifiers: <em class="firstterm">revision keywords</em>
|
||||
and revision dates.</p>
|
||||
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Note">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Note]" src="images/note.png" />
|
||||
</td>
|
||||
<th align="left">Note</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>The various forms of Subversion revision specifiers can be
|
||||
mixed and matched when used to specify revision ranges. For
|
||||
example, you can use <code class="option">-r
|
||||
<em class="replaceable"><code>REV1</code></em>:<em class="replaceable"><code>REV2</code></em></code>
|
||||
where <em class="replaceable"><code>REV1</code></em> is a revision keyword
|
||||
and <em class="replaceable"><code>REV2</code></em> is a revision number, or
|
||||
where <em class="replaceable"><code>REV1</code></em> is a date and
|
||||
<em class="replaceable"><code>REV2</code></em> is a revision keyword, and so
|
||||
on. The individual revision specifiers are independently
|
||||
evaluated, so you can put whatever you want on the opposite
|
||||
sides of that colon.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="sect2" title="Revision Keywords">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.tour.revs.keywords"></a>Revision Keywords</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a id="idp33928160" class="indexterm"></a>
|
||||
<p>The Subversion client understands a number of revision
|
||||
keywords. These keywords can be used instead of integer
|
||||
arguments to the <code class="option">--revision</code>
|
||||
(<code class="option">-r</code>) option, and are resolved into specific
|
||||
revision numbers by Subversion:</p>
|
||||
<div class="variablelist">
|
||||
<dl>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">HEAD</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<a id="idp33932752" class="indexterm"></a>
|
||||
<a id="idp33933824" class="indexterm"></a>
|
||||
<p>The latest (or <span class="quote">“<span class="quote">youngest</span>”</span>) revision in
|
||||
the repository.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">BASE</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<a id="idp33938208" class="indexterm"></a>
|
||||
<a id="idp33939280" class="indexterm"></a>
|
||||
<p>The revision number of an item in a working copy.
|
||||
If the item has been locally modified, this refers to
|
||||
the way the item appears without those local
|
||||
modifications.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">COMMITTED</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<a id="idp33943376" class="indexterm"></a>
|
||||
<a id="idp33944448" class="indexterm"></a>
|
||||
<p>The most recent revision prior to, or equal to,
|
||||
<code class="literal">BASE</code>, in which an item changed.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">PREV</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<a id="idp33949056" class="indexterm"></a>
|
||||
<a id="idp33950128" class="indexterm"></a>
|
||||
<p>The revision immediately <span class="emphasis"><em>before</em></span>
|
||||
the last revision in which an item changed.
|
||||
Technically, this boils down to
|
||||
<code class="literal">COMMITTED</code>-1.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>As can be derived from their descriptions, the
|
||||
<code class="literal">PREV</code>, <code class="literal">BASE</code>, and
|
||||
<code class="literal">COMMITTED</code> revision keywords are used only
|
||||
when referring to a working copy path—they don't apply
|
||||
to repository URLs. <code class="literal">HEAD</code>, on the other
|
||||
hand, can be used in conjunction with both of these path
|
||||
types.</p>
|
||||
<p>Here are some examples of revision keywords in
|
||||
action:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn diff -r PREV:COMMITTED foo.c
|
||||
# shows the last change committed to foo.c
|
||||
|
||||
$ svn log -r HEAD
|
||||
# shows log message for the latest repository commit
|
||||
|
||||
$ svn diff -r HEAD
|
||||
# compares your working copy (with all of its local changes) to the
|
||||
# latest version of that tree in the repository
|
||||
|
||||
$ svn diff -r BASE:HEAD foo.c
|
||||
# compares the unmodified version of foo.c with the latest version of
|
||||
# foo.c in the repository
|
||||
|
||||
$ svn log -r BASE:HEAD
|
||||
# shows all commit logs for the current versioned directory since you
|
||||
# last updated
|
||||
|
||||
$ svn update -r PREV foo.c
|
||||
# rewinds the last change on foo.c, decreasing foo.c's working revision
|
||||
|
||||
$ svn diff -r BASE:14 foo.c
|
||||
# compares the unmodified version of foo.c with the way foo.c looked
|
||||
# in revision 14
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2" title="Revision Dates">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.tour.revs.dates"></a>Revision Dates</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a id="idp33961536" class="indexterm"></a>
|
||||
<p>Revision numbers reveal nothing about the world outside
|
||||
the version control system, but sometimes you need to
|
||||
correlate a moment in real time with a moment in version
|
||||
history. To facilitate this, the <code class="option">--revision</code>
|
||||
(<code class="option">-r</code>) option can also accept as input date
|
||||
specifiers wrapped in curly braces (<code class="literal">{</code> and
|
||||
<code class="literal">}</code>). Subversion accepts the standard
|
||||
ISO-8601 date and time formats, plus a few others. Here are
|
||||
some examples.</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn checkout -r {2006-02-17}
|
||||
$ svn checkout -r {15:30}
|
||||
$ svn checkout -r {15:30:00.200000}
|
||||
$ svn checkout -r {"2006-02-17 15:30"}
|
||||
$ svn checkout -r {"2006-02-17 15:30 +0230"}
|
||||
$ svn checkout -r {2006-02-17T15:30}
|
||||
$ svn checkout -r {2006-02-17T15:30Z}
|
||||
$ svn checkout -r {2006-02-17T15:30-04:00}
|
||||
$ svn checkout -r {20060217T1530}
|
||||
$ svn checkout -r {20060217T1530Z}
|
||||
$ svn checkout -r {20060217T1530-0500}
|
||||
…
|
||||
</pre>
|
||||
</div>
|
||||
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Note">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Note]" src="images/note.png" />
|
||||
</td>
|
||||
<th align="left">Note</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Keep in mind that most shells will require you to, at a
|
||||
minimum, quote or otherwise escape any spaces that are
|
||||
included as part of revision date specifiers. Certain
|
||||
shells may also take issue with the unescaped use of curly
|
||||
brances, too. Consult your shell's documentation for the
|
||||
requirements specific to your environment.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p>When you specify a date, Subversion resolves that date to
|
||||
the most recent revision of the repository as of that date,
|
||||
and then continues to operate against that resolved revision
|
||||
number:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn log -r {2006-11-28}
|
||||
------------------------------------------------------------------------
|
||||
r12 | ira | 2006-11-27 12:31:51 -0600 (Mon, 27 Nov 2006) | 6 lines
|
||||
…
|
||||
</pre>
|
||||
</div>
|
||||
<div class="sidebar" title="Is Subversion a Day Early?">
|
||||
<p class="title">
|
||||
<b>Is Subversion a Day Early?</b>
|
||||
</p>
|
||||
<p>If you specify a single date as a revision without
|
||||
specifying a time of day (for example
|
||||
<code class="literal">2006-11-27</code>), you may think that Subversion
|
||||
should give you the last revision that took place on the
|
||||
27th of November. Instead, you'll get back a revision from
|
||||
the 26th, or even earlier. Remember that Subversion will
|
||||
find the <span class="emphasis"><em>most recent revision of the
|
||||
repository</em></span> as of the date you give. If you give
|
||||
a date without a timestamp, such as
|
||||
<code class="literal">2006-11-27</code>, Subversion assumes a time of
|
||||
00:00:00, so looking for the most recent revision won't
|
||||
return anything on the 27th.</p>
|
||||
<p>If you want to include the 27th in your search, you can
|
||||
either specify the 27th with the time (<code class="literal">{"2006-11-27
|
||||
23:59"}</code>), or just specify the next day
|
||||
(<code class="literal">{2006-11-28}</code>).</p>
|
||||
</div>
|
||||
<p>You can also use a range of dates. Subversion will find
|
||||
all revisions between both dates, inclusive:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn log -r {2006-11-20}:{2006-11-29}
|
||||
…
|
||||
</pre>
|
||||
</div>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Since the timestamp of a revision is stored as an
|
||||
unversioned, modifiable property of the revision (see <a class="xref" href="svn.advanced.props.html" title="Properties">the section called “Properties”</a>), revision timestamps can be
|
||||
changed to represent complete falsifications of true
|
||||
chronology, or even removed altogether. Subversion's
|
||||
ability to correctly convert revision dates into real
|
||||
revision numbers depends on revision datestamps maintaining
|
||||
a sequential ordering—the younger the revision, the
|
||||
younger its timestamp. If this ordering isn't maintained,
|
||||
you will likely find that trying to use dates to specify
|
||||
revision ranges in your repository doesn't always return the
|
||||
data you might have expected.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.advanced.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.advanced.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.advanced.pegrevs.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">Chapter 3. Advanced Topics </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Peg and Operative Revisions</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,108 @@
|
|||
<?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>svnlook dirs-changed</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnlook.html#svn.ref.svnlook.c" title="svnlook Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnlook.c.diff.html" title="svnlook diff" />
|
||||
<link rel="next" href="svn.ref.svnlook.c.filesize.html" title="svnlook filesize" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnlook dirs-changed</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.diff.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnlook Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.filesize.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnlook dirs-changed">
|
||||
<a id="svn.ref.svnlook.c.dirs-changed"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44033040" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnlook dirs-changed — Print the directories that were themselves changed.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp44036192"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnlook dirs-changed REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44037776"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Print the directories that were themselves changed
|
||||
(property edits) or whose file children were
|
||||
changed.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp44039104"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--revision (-r) REV
|
||||
--transaction (-t) TXN
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp44041008"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>This shows the directories that changed in
|
||||
revision 40 in our sample repository:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnlook dirs-changed -r 40 /var/svn/repos
|
||||
trunk/vendors/deli/
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.diff.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnlook.html#svn.ref.svnlook.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.filesize.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnlook diff </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnlook filesize</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,123 @@
|
|||
<?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>pre-revprop-change</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.reposhooks.html" title="Repository Hooks" />
|
||||
<link rel="prev" href="svn.ref.reposhooks.post-commit.html" title="post-commit" />
|
||||
<link rel="next" href="svn.ref.reposhooks.post-revprop-change.html" title="post-revprop-change" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">pre-revprop-change</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.post-commit.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Repository Hooks</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.post-revprop-change.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="pre-revprop-change">
|
||||
<a id="svn.ref.reposhooks.pre-revprop-change"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44867312" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>pre-revprop-change — Notification of a revision property change
|
||||
attempt.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44870400"></a>
|
||||
<h2>Description</h2>
|
||||
<p>The <code class="literal">pre-revprop-change</code> 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.</p>
|
||||
<p>If the <code class="literal">pre-revprop-change</code> 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 <code class="filename">stderr</code> is marshalled back to the client.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Input parameter(s)">
|
||||
<a id="idp44874672"></a>
|
||||
<h2>Input parameter(s)</h2>
|
||||
<p>The command-line arguments passed to the hook program,
|
||||
in order, are:</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>Repository path</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Revision whose property is about to be modified</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Authenticated username attempting the property change</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Name of the property changed</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Change description: <code class="literal">A</code> (added),
|
||||
<code class="literal">D</code> (deleted), or <code class="literal">M</code>
|
||||
(modified)</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<p>Additionally, Subversion passes the intended new value
|
||||
of the property to the hook program via standard
|
||||
input.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Common uses">
|
||||
<a id="idp44883584"></a>
|
||||
<h2>Common uses</h2>
|
||||
<p>Access control; change validation and control</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.reposhooks.post-commit.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.reposhooks.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.post-revprop-change.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">post-commit </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> post-revprop-change</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,125 @@
|
|||
<?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>svnlook history</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnlook.html#svn.ref.svnlook.c" title="svnlook Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnlook.c.help.html" title="svnlook help" />
|
||||
<link rel="next" href="svn.ref.svnlook.c.info.html" title="svnlook info" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnlook history</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.help.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnlook Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.info.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnlook history">
|
||||
<a id="svn.ref.svnlook.c.history"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44070720" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnlook history — Print information about the history of a path in
|
||||
the repository (or the root directory if no path is
|
||||
supplied).</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp44073952"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnlook history REPOS_PATH [PATH_IN_REPOS]</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44075600"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Print information about the history of a path in
|
||||
the repository (or the root directory if no path is
|
||||
supplied).</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp44076928"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--limit (-l) NUM
|
||||
--revision (-r) REV
|
||||
--show-ids
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp44078832"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>This shows the history output for the path
|
||||
<code class="filename">/branches/bookstore</code> as of revision 13 in our
|
||||
sample repository:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="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>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.help.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnlook.html#svn.ref.svnlook.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.info.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnlook help </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnlook info</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,133 @@
|
|||
<?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>svnadmin upgrade</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.setuuid.html" title="svnadmin setuuid" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.verify.html" title="svnadmin verify" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin upgrade</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.setuuid.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.verify.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin upgrade">
|
||||
<a id="svn.ref.svnadmin.c.upgrade"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43893216" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin upgrade — Upgrade a repository to the latest supported
|
||||
schema version.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43896400"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin upgrade REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43897984"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Upgrade the repository located
|
||||
at <em class="replaceable"><code>REPOS_PATH</code></em> to the latest
|
||||
supported schema version.</p>
|
||||
<p>This functionality is provided as a convenience for
|
||||
repository administrators who wish to make use of new
|
||||
Subversion functionality without having to undertake a
|
||||
potentially costly full repository dump and load
|
||||
operation. As such, the upgrade performs only the minimum
|
||||
amount of work needed to accomplish this while still
|
||||
maintaining the integrity of the repository. While a dump
|
||||
and subsequent load guarantee the most optimized
|
||||
repository state, <span class="command"><strong>svnadmin upgrade</strong></span> does
|
||||
not.</p>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>You should <span class="emphasis"><em>always</em></span> back up your
|
||||
repository before upgrading.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43902672"></a>
|
||||
<h2>Options</h2>
|
||||
<p>None</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43903888"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>Upgrade the repository at
|
||||
path <code class="filename">/var/repos/svn</code>:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin upgrade /var/repos/svn
|
||||
Repository lock acquired.
|
||||
Please wait; upgrading the repository may take some time...
|
||||
|
||||
Upgrade completed.
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.setuuid.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.verify.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin setuuid </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin verify</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,119 @@
|
|||
<?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>svnlook filesize</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnlook.html#svn.ref.svnlook.c" title="svnlook Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnlook.c.dirs-changed.html" title="svnlook dirs-changed" />
|
||||
<link rel="next" href="svn.ref.svnlook.c.help.html" title="svnlook help" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnlook filesize</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.dirs-changed.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnlook Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.help.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnlook filesize">
|
||||
<a id="svn.ref.svnlook.c.filesize"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44044736" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnlook filesize — Print the size (in bytes) of a versioned
|
||||
file.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp44047904"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnlook filesize REPOS_PATH
|
||||
PATH_IN_REPOS</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44049552"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Print the file size (in bytes) of the file located
|
||||
at <em class="replaceable"><code>PATH_IN_REPOS</code></em> in the HEAD
|
||||
revision of the repository identified
|
||||
by <em class="replaceable"><code>REPOS_PATH</code></em> as a base-10
|
||||
integer followed by an end-of-line character. Use
|
||||
the <code class="option">--revision</code> (<code class="option">-r</code>)
|
||||
and <code class="option">--transaction</code> (<code class="option">-t</code>)
|
||||
options to specify a version of the file other than HEAD
|
||||
whose file size you wish to display.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp44053616"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--revision (-r) REV
|
||||
--transaction (-t) TXN
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp44055520"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>The following demonstrates how to display the size of
|
||||
the <code class="filename">trunk/vendors/deli/soda.txt</code> file
|
||||
as it appeared in revision 40 of our sample
|
||||
repository:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnlook filesize -r 40 /var/svn/repos trunk/vendors/deli/soda.txt
|
||||
23
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.dirs-changed.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnlook.html#svn.ref.svnlook.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.help.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnlook dirs-changed </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnlook help</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,236 @@
|
|||
<?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>High-level Logging</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<style type="text/css">
|
||||
body { background-image: url('images/draft.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: top left;
|
||||
/* The following properties make the watermark "fixed" on the page. */
|
||||
/* I think that's just a bit too distracting for the reader... */
|
||||
/* background-attachment: fixed; */
|
||||
/* background-position: center center; */
|
||||
}</style>
|
||||
<link rel="home" href="index.html" title="Version Control with Subversion [DRAFT]" />
|
||||
<link rel="up" href="svn.serverconfig.html" title="Chapter 6. Server Configuration" />
|
||||
<link rel="prev" href="svn.serverconfig.pathbasedauthz.html" title="Path-Based Authorization" />
|
||||
<link rel="next" href="svn.serverconfig.optimization.html" title="Server Optimization" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">High-level Logging</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.serverconfig.pathbasedauthz.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 6. Server Configuration</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.serverconfig.optimization.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="High-level Logging">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.serverconfig.operational-logging"></a>High-level Logging</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Both the Apache <span class="command"><strong>httpd</strong></span>
|
||||
and <span class="command"><strong>svnserve</strong></span> Subversion servers provide
|
||||
support for high-level logging of Subversion operations.
|
||||
Configuring each of the server options to provide this level of
|
||||
logging is done differently, of course, but the output from each
|
||||
is designed to conform to a uniform syntax.</p>
|
||||
<p>To enable high-level logging in <span class="command"><strong>svnserve</strong></span>,
|
||||
you need only use the <code class="option">--log-file</code> command-line
|
||||
option when starting the server, passing as the value to the
|
||||
option the file to which <span class="command"><strong>svnserve</strong></span> should
|
||||
write its log output.</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnserve -d -r /path/to/repositories --log-file /var/log/svn.log
|
||||
</pre>
|
||||
</div>
|
||||
<p>Enabling the same in Apache is a bit more involved, but is
|
||||
essentially an extension of Apache's stock log output
|
||||
configuration mechanisms—see
|
||||
<a class="xref" href="svn.serverconfig.httpd.html#svn.serverconfig.httpd.extra.logging" title="Apache logging">the section called “Apache logging”</a> for
|
||||
details.</p>
|
||||
<p>The following is a list of Subversion action log messages
|
||||
produced by its high-level logging mechanism, followed by one or
|
||||
more examples of the log message as it appears in the log
|
||||
output.</p>
|
||||
<div class="variablelist">
|
||||
<dl>
|
||||
<dt>
|
||||
<span class="term">Checkout or export</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
checkout-or-export /path r62 depth=infinity
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Commit</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
commit harry r100
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Diffs</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
diff /path r15:20 depth=infinity ignore-ancestry
|
||||
diff /path1@15 /path2@20 depth=infinity ignore-ancestry
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Fetch a directory</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
get-dir /trunk r17 text
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Fetch a file</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
get-file /path r20 props
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Fetch a file revision</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
get-file-revs /path r12:15 include-merged-revisions
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Fetch merge information</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
get-mergeinfo (/path1 /path2)
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Lock</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
lock /path steal
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Log</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
log (/path1,/path2,/path3) r20:90 discover-changed-paths revprops=()
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Replay revisions (svnsync)</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
replay /path r19
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Revision property change</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
change-rev-prop r50 propertyname
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Revision property list</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
rev-proplist r34
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Status</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
status /path r62 depth=infinity
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Switch</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
switch /pathA /pathB@50 depth=infinity
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Unlock</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
unlock /path break
|
||||
</pre>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">Update</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<pre class="programlisting">
|
||||
update /path r17 send-copyfrom-args
|
||||
</pre>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>As a convenience to administrators who wish to post-process
|
||||
their Subversion high-level logging output (perhaps for
|
||||
reporting or analysis purposes), Subversion source code
|
||||
distributions provide a Python module (located at
|
||||
<code class="filename">tools/server-side/svn_server_log_parse.py</code>)
|
||||
which can be used to parse Subversion's log output.</p>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.serverconfig.pathbasedauthz.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.serverconfig.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.serverconfig.optimization.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">Path-Based Authorization </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Server Optimization</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,140 @@
|
|||
<?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>svn changelist</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svn.html#svn.ref.svn.c" title="svn Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svn.c.cat.html" title="svn cat" />
|
||||
<link rel="next" href="svn.ref.svn.c.checkout.html" title="svn checkout" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svn changelist</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svn.c.cat.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svn Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svn.c.checkout.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svn changelist">
|
||||
<a id="svn.ref.svn.c.changelist"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp42575728" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svn changelist, cl — Associate (or deassociate) local paths with a
|
||||
changelist.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp42579248"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">changelist CLNAME TARGET...</code>
|
||||
</p>
|
||||
<p>
|
||||
<code class="literal">changelist --remove TARGET...</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp42581712"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Used for dividing files in a working copy into a
|
||||
changelist (logical named grouping) in order to allow
|
||||
users to easily work on multiple file collections within a
|
||||
single working copy.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp42583136"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--changelist ARG
|
||||
--depth ARG
|
||||
--quiet (-q)
|
||||
--recursive (-R)
|
||||
--remove
|
||||
--targets FILENAME
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Example">
|
||||
<a id="idp42585088"></a>
|
||||
<h2>Example</h2>
|
||||
<p>Edit three files, add them to a changelist, then
|
||||
commit only files in that changelist:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn changelist issue1729 foo.c bar.c baz.c
|
||||
A [issue1729] foo.c
|
||||
A [issue1729] bar.c
|
||||
A [issue1729] baz.c
|
||||
$ svn status
|
||||
A someotherfile.c
|
||||
A test/sometest.c
|
||||
|
||||
--- Changelist 'issue1729':
|
||||
A foo.c
|
||||
A bar.c
|
||||
A baz.c
|
||||
$ svn commit --changelist issue1729 -m "Fixing Issue 1729."
|
||||
Adding bar.c
|
||||
Adding baz.c
|
||||
Adding foo.c
|
||||
Transmitting file data ...
|
||||
Committed revision 2.
|
||||
$ svn status
|
||||
A someotherfile.c
|
||||
A test/sometest.c
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
<p>Note that in the previous example, only the files in
|
||||
changelist <code class="literal">issue1729</code> were
|
||||
committed.</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.svn.c.cat.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svn.html#svn.ref.svn.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svn.c.checkout.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svn cat </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svn checkout</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,109 @@
|
|||
<?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>post-lock</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.reposhooks.html" title="Repository Hooks" />
|
||||
<link rel="prev" href="svn.ref.reposhooks.pre-lock.html" title="pre-lock" />
|
||||
<link rel="next" href="svn.ref.reposhooks.pre-unlock.html" title="pre-unlock" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">post-lock</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.pre-lock.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Repository Hooks</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.pre-unlock.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="post-lock">
|
||||
<a id="svn.ref.reposhooks.post-lock"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44927824" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>post-lock — Notification of a successful path lock.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44930912"></a>
|
||||
<h2>Description</h2>
|
||||
<p>The <code class="literal">post-lock</code> hook runs after one or
|
||||
more paths have been locked. It is typically used to send
|
||||
email notification of the lock event.</p>
|
||||
<p>If the <code class="literal">post-lock</code> hook returns a
|
||||
nonzero exit status, the lock <span class="emphasis"><em>will
|
||||
not</em></span> be aborted since it has already
|
||||
completed. However, anything that the hook printed
|
||||
to <code class="filename">stderr</code> will be marshalled back to the
|
||||
client, making it easier to diagnose hook failures.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Input parameter(s)">
|
||||
<a id="idp44935424"></a>
|
||||
<h2>Input parameter(s)</h2>
|
||||
<p>The command-line arguments passed to the hook program,
|
||||
in order, are:</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>Repository path</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Authenticated username of the person who locked the
|
||||
paths</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<p>Additionally, the list of paths locked is passed to the
|
||||
hook program via standard input, one path per line.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Common uses">
|
||||
<a id="idp44939808"></a>
|
||||
<h2>Common uses</h2>
|
||||
<p>Lock notification</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.reposhooks.pre-lock.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.reposhooks.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.pre-unlock.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">pre-lock </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> pre-unlock</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,123 @@
|
|||
<?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>svnlook proplist</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnlook.html#svn.ref.svnlook.c" title="svnlook Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnlook.c.propget.html" title="svnlook propget" />
|
||||
<link rel="next" href="svn.ref.svnlook.c.tree.html" title="svnlook tree" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnlook proplist</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.propget.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnlook Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.tree.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnlook proplist">
|
||||
<a id="svn.ref.svnlook.c.proplist"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44133968" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnlook proplist, plist, pl — Print the names and values of versioned file and
|
||||
directory properties.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp44137920"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnlook proplist REPOS_PATH [PATH_IN_REPOS]</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44139568"></a>
|
||||
<h2>Description</h2>
|
||||
<p>List the properties of a path in the repository. With
|
||||
<code class="option">--verbose</code> (<code class="option">-v</code>), show the
|
||||
property values too.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp44141696"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--revision (-r) REV
|
||||
--revprop
|
||||
--transaction (-t) TXN
|
||||
--verbose (-v)
|
||||
--xml
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp44143632"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>This shows the names of properties set on the file
|
||||
<code class="filename">/trunk/README</code> in the
|
||||
<code class="literal">HEAD</code> revision:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnlook proplist /var/svn/repos /trunk/README
|
||||
original-author
|
||||
svn:mime-type
|
||||
</pre>
|
||||
</div>
|
||||
<p>This is the same command as in the preceding example,
|
||||
but this time showing the property values as well:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnlook -v proplist /var/svn/repos /trunk/README
|
||||
original-author : harry
|
||||
svn:mime-type : text/plain
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.propget.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnlook.html#svn.ref.svnlook.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.tree.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnlook propget </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnlook tree</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,228 @@
|
|||
<?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>Traversing Branches</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.branchmerge.html" title="Chapter 4. Branching and Merging" />
|
||||
<link rel="prev" href="svn.branchmerge.advanced.html" title="Advanced Merging" />
|
||||
<link rel="next" href="svn.branchmerge.tags.html" title="Tags" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Traversing Branches</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.branchmerge.advanced.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 4. Branching and Merging</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.branchmerge.tags.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Traversing Branches">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.branchmerge.switchwc"></a>Traversing Branches</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>The <span class="command"><strong>svn switch</strong></span> command transforms an
|
||||
existing working copy to reflect a different branch. While this
|
||||
command isn't strictly necessary for working with branches, it
|
||||
provides a nice shortcut. In our earlier example,
|
||||
after creating your private branch, you checked out a fresh
|
||||
working copy of the new repository directory. Instead, you can
|
||||
simply ask Subversion to change your working copy of
|
||||
<code class="filename">/calc/trunk</code> to mirror the new branch
|
||||
location:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ cd calc
|
||||
|
||||
$ svn info | grep URL
|
||||
URL: http://svn.example.com/repos/calc/trunk
|
||||
|
||||
$ svn switch ^/calc/branches/my-calc-branch
|
||||
U integer.c
|
||||
U button.c
|
||||
U Makefile
|
||||
Updated to revision 341.
|
||||
|
||||
$ svn info | grep URL
|
||||
URL: http://svn.example.com/repos/calc/branches/my-calc-branch
|
||||
</pre>
|
||||
</div>
|
||||
<p><span class="quote">“<span class="quote">Switching</span>”</span> a working copy that has no local
|
||||
modifications to a different branch results in the working copy
|
||||
looking just as it would if you'd done a fresh checkout of the
|
||||
directory. It's usually more efficient to
|
||||
use this command, because often branches differ by only a small
|
||||
degree. The server sends only the minimal set of changes
|
||||
necessary to make your working copy reflect the branch
|
||||
directory.</p>
|
||||
<p>The <span class="command"><strong>svn switch</strong></span> command also takes a
|
||||
<code class="option">--revision</code> (<code class="option">-r</code>) option, so you
|
||||
need not always move your working copy to the
|
||||
<code class="literal">HEAD</code> of the branch.</p>
|
||||
<p>Of course, most projects are more complicated than our
|
||||
<code class="filename">calc</code> example, and contain multiple
|
||||
subdirectories. Subversion users often follow a specific
|
||||
algorithm when using branches:</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>Copy the project's entire <span class="quote">“<span class="quote">trunk</span>”</span> to a new
|
||||
branch directory.</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Switch only <span class="emphasis"><em>part</em></span> of the trunk
|
||||
working copy to mirror the branch.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<p>In other words, if a user knows that the branch work needs
|
||||
to happen on only a specific subdirectory, she uses
|
||||
<span class="command"><strong>svn switch</strong></span> to move only that subdirectory to
|
||||
the branch. (Or sometimes users will switch just a single
|
||||
working file to the branch!) That way, the user can continue to
|
||||
receive normal <span class="quote">“<span class="quote">trunk</span>”</span> updates to most of her
|
||||
working copy, but the switched portions will remain immune
|
||||
(unless someone commits a change to her branch). This feature
|
||||
adds a whole new dimension to the concept of a <span class="quote">“<span class="quote">mixed
|
||||
working copy</span>”</span>—not only can working copies contain a
|
||||
mixture of working revisions, but they can also contain a
|
||||
mixture of repository locations as well.</p>
|
||||
<p>If your working copy contains a number of switched subtrees
|
||||
from different repository locations, it continues to function as
|
||||
normal. When you update, you'll receive patches to each subtree
|
||||
as appropriate. When you commit, your local changes will still
|
||||
be applied as a single, atomic change to the repository.</p>
|
||||
<p>Note that while it's okay for your working copy to reflect a
|
||||
mixture of repository locations, these locations must all be
|
||||
within the <span class="emphasis"><em>same</em></span> repository. Subversion
|
||||
repositories aren't yet able to communicate with one another;
|
||||
that feature is planned for the
|
||||
future.<sup>[<a id="idp36438032" href="#ftn.idp36438032" class="footnote">28</a>]</sup></p>
|
||||
<div class="sidebar" title="Switches and Updates">
|
||||
<p class="title">
|
||||
<b>Switches and Updates</b>
|
||||
</p>
|
||||
<p>Have you noticed that the output of <span class="command"><strong>svn
|
||||
switch</strong></span> and <span class="command"><strong>svn update</strong></span> looks the
|
||||
same? The switch command is actually a superset of the update
|
||||
command.</p>
|
||||
<p>When you run <span class="command"><strong>svn update</strong></span>, you're asking
|
||||
the repository to compare two trees. The repository does so,
|
||||
and then sends a description of the differences back to the
|
||||
client. The only difference between <span class="command"><strong>svn
|
||||
switch</strong></span> and <span class="command"><strong>svn update</strong></span> is that the
|
||||
latter command always compares two identical repository
|
||||
paths.</p>
|
||||
<p>That is, if your working copy is a mirror of
|
||||
<code class="filename">/calc/trunk</code>, <span class="command"><strong>svn
|
||||
update</strong></span> will automatically compare your working copy
|
||||
of <code class="filename">/calc/trunk</code> to
|
||||
<code class="filename">/calc/trunk</code> in the
|
||||
<code class="literal">HEAD</code> revision. If you're switching your
|
||||
working copy to a branch, <span class="command"><strong>svn switch</strong></span>
|
||||
will compare your working copy of
|
||||
<code class="filename">/calc/trunk</code> to some
|
||||
<span class="emphasis"><em>other</em></span> branch directory in the
|
||||
<code class="literal">HEAD</code> revision.</p>
|
||||
<p>In other words, an update moves your working copy through
|
||||
time. A switch moves your working copy through time
|
||||
<span class="emphasis"><em>and</em></span> space.</p>
|
||||
</div>
|
||||
<p>Because <span class="command"><strong>svn switch</strong></span> is essentially a
|
||||
variant of <span class="command"><strong>svn update</strong></span>, it shares the same
|
||||
behaviors; any local modifications in your working copy are
|
||||
preserved when new data arrives from the repository.</p>
|
||||
<div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Tip">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Tip]" src="images/tip.png" />
|
||||
</td>
|
||||
<th align="left">Tip</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Have you ever found yourself making some complex edits (in
|
||||
your <code class="filename">/trunk</code> working copy) and suddenly
|
||||
realized, <span class="quote">“<span class="quote">Hey, these changes ought to be in their own
|
||||
branch?</span>”</span> A great technique to do this can be summarized
|
||||
in two steps:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn copy http://svn.example.com/repos/calc/trunk \
|
||||
http://svn.example.com/repos/calc/branches/newbranch \
|
||||
-m "Create branch 'newbranch'."
|
||||
Committed revision 353.
|
||||
$ svn switch ^/calc/branches/newbranch
|
||||
At revision 353.
|
||||
</pre>
|
||||
</div>
|
||||
<p>The <span class="command"><strong>svn switch</strong></span> command, like
|
||||
<span class="command"><strong>svn update</strong></span>, preserves your local edits. At
|
||||
this point, your working copy is now a reflection of the newly
|
||||
created branch, and your next <span class="command"><strong>svn commit</strong></span>
|
||||
invocation will send your changes there.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="footnotes">
|
||||
<br />
|
||||
<hr width="100" align="left" />
|
||||
<div class="footnote">
|
||||
<p><sup>[<a id="ftn.idp36438032" href="#idp36438032" class="para">28</a>] </sup>You <span class="emphasis"><em>can</em></span>, however,
|
||||
use <span class="command"><strong>svn relocate</strong></span> if the URL of your server
|
||||
changes and you don't want to abandon an existing working copy.
|
||||
See <a class="xref" href="svn.ref.svn.c.relocate.html" title="svn relocate">svn relocate</a> for more information
|
||||
and an example.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.branchmerge.advanced.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.branchmerge.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.branchmerge.tags.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">Advanced Merging </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Tags</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,188 @@
|
|||
<?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>svnlook changed</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnlook.html#svn.ref.svnlook.c" title="svnlook Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnlook.c.cat.html" title="svnlook cat" />
|
||||
<link rel="next" href="svn.ref.svnlook.c.date.html" title="svnlook date" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnlook changed</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.cat.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnlook Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.date.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnlook changed">
|
||||
<a id="svn.ref.svnlook.c.changed"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43978944" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnlook changed — Print the paths that were changed.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43982032"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnlook changed REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43983664"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Print the paths that were changed in a particular
|
||||
revision or transaction, as well as <span class="quote">“<span class="quote">svn
|
||||
update-style</span>”</span> status letters in the first two
|
||||
columns:</p>
|
||||
<div class="variablelist">
|
||||
<dl>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">'A '</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Item added to repository</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">'D '</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Item deleted from repository</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">'U '</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>File contents changed</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">'_U'</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Properties of item changed; note the leading underscore</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">'UU'</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>File contents and properties changed</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>Files and directories can be distinguished, as
|
||||
directory paths are displayed with a
|
||||
trailing <span class="quote">“<span class="quote"><code class="literal">/</code></span>”</span>
|
||||
character.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43997248"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--copy-info
|
||||
--revision (-r) REV
|
||||
--transaction (-t) TXN
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43999168"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>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 <code class="literal">/</code>:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="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
|
||||
</pre>
|
||||
</div>
|
||||
<p>Here's an example that shows a revision in which a
|
||||
file was renamed:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnlook changed -r 64 /var/svn/repos
|
||||
A trunk/vendors/baker/toast.txt
|
||||
D trunk/vendors/baker/bread.txt
|
||||
</pre>
|
||||
</div>
|
||||
<p>Unfortunately, nothing in the preceding output reveals
|
||||
the connection between the deleted and added files. Use
|
||||
the <code class="option">--copy-info</code> option to make this
|
||||
relationship more apparent:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="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
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.cat.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnlook.html#svn.ref.svnlook.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.date.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnlook cat </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnlook date</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,105 @@
|
|||
<?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>svnadmin crashtest</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.html" title="svnadmin—Subversion Repository Administration" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.create.html" title="svnadmin create" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin crashtest</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.create.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin crashtest">
|
||||
<a id="svn.ref.svnadmin.c.crashtest"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43623968" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin crashtest — Simulate a process that crashes.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43627056"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin crashtest REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43628688"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Open the repository at <em class="replaceable"><code>REPOS_PATH</code></em>, 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.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43630640"></a>
|
||||
<h2>Options</h2>
|
||||
<p>None</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43631856"></a>
|
||||
<h2>Examples</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin crashtest /var/svn/repos
|
||||
Aborted
|
||||
</pre>
|
||||
</div>
|
||||
<p>Exciting, isn't it?</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.svnadmin.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.create.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin—Subversion Repository Administration </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin create</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,169 @@
|
|||
<?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>svnsync copy-revprops</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnsync.html#svn.ref.svnsync.c" title="svnsync Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnsync.html" title="svnsync—Subversion Repository Mirroring" />
|
||||
<link rel="next" href="svn.ref.svnsync.c.help.html" title="svnsync help" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnsync copy-revprops</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnsync.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnsync Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnsync.c.help.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnsync copy-revprops">
|
||||
<a id="svn.ref.svnsync.c.copy-revprops"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44248896" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnsync copy-revprops — Copy all revision properties for a particular
|
||||
revision (or range of revisions) from the source
|
||||
repository to the mirror repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp44252160"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnsync copy-revprops DEST_URL
|
||||
[SOURCE_URL]</code>
|
||||
</p>
|
||||
<p>
|
||||
<code class="literal">svnsync copy-revprops DEST_URL
|
||||
REV[:REV2]</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44254656"></a>
|
||||
<h2>Description</h2>
|
||||
<p>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
|
||||
<span class="command"><strong>svnsync synchronize</strong></span> 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. <span class="command"><strong>svnsync
|
||||
copy-revprops</strong></span> is the answer to this problem.
|
||||
Use it to resynchronize the revision properties for a
|
||||
particular revision or range of revisions.</p>
|
||||
<p>When <em class="replaceable"><code>SOURCE_URL</code></em> is
|
||||
provided, <span class="command"><strong>svnsync</strong></span> will use it as the
|
||||
repository URL which the destination repository is
|
||||
mirroring. Generally, <em class="replaceable"><code>SOURCE_URL</code></em>
|
||||
will be exactly the same source URL as was used with
|
||||
the <span class="command"><strong>svnsync initialize</strong></span> command when the
|
||||
mirror was first set up. You may choose, however, to
|
||||
omit <em class="replaceable"><code>SOURCE_URL</code></em>, in which
|
||||
case <span class="command"><strong>svnsync</strong></span> will consult the mirror
|
||||
repository's records to determine the source URL which
|
||||
should be used.</p>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>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 <span class="command"><strong>svnsync</strong></span> uses to coordinate its
|
||||
efforts.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp44264032"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--config-dir DIR
|
||||
--config-option
|
||||
--disable-locking
|
||||
--no-auth-cache
|
||||
--non-interactive
|
||||
--quiet (-q)
|
||||
--revision (-r)
|
||||
--source-password ARG
|
||||
--source-prop-encoding
|
||||
--source-username ARG
|
||||
--steal-lock
|
||||
--sync-password ARG
|
||||
--sync-username ARG
|
||||
--trust-server-cert
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp44266144"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>Resynchronize the revision properties associated with
|
||||
a single revision (r6):</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnsync copy-revprops -r 6 file:///var/svn/repos-mirror \
|
||||
http://svn.example.com/repos
|
||||
Copied properties for revision 6.
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnsync.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnsync.html#svn.ref.svnsync.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnsync.c.help.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnsync—Subversion Repository Mirroring </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnsync help</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,107 @@
|
|||
<?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>svnlook author</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnlook.html#svn.ref.svnlook.c" title="svnlook Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnlook.html" title="svnlook—Subversion Repository Examination" />
|
||||
<link rel="next" href="svn.ref.svnlook.c.cat.html" title="svnlook cat" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnlook author</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnlook.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnlook Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.cat.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnlook author">
|
||||
<a id="svn.ref.svnlook.c.author"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43953792" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnlook author — Print the author.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43956912"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnlook author REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43958496"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Print the author of a revision or transaction in
|
||||
the repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43959776"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--revision (-r) REV
|
||||
--transaction (-t) TXN
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43961680"></a>
|
||||
<h2>Examples</h2>
|
||||
<p><span class="command"><strong>svnlook author</strong></span> is handy, but not
|
||||
very exciting:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnlook author -r 40 /var/svn/repos
|
||||
sally
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnlook.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnlook.html#svn.ref.svnlook.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnlook.c.cat.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnlook—Subversion Repository Examination </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnlook cat</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,393 @@
|
|||
<?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>File Portability</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.advanced.html" title="Chapter 3. Advanced Topics" />
|
||||
<link rel="prev" href="svn.advanced.props.html" title="Properties" />
|
||||
<link rel="next" href="svn.advanced.props.special.ignore.html" title="Ignoring Unversioned Items" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">File Portability</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.advanced.props.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 3. Advanced Topics</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.advanced.props.special.ignore.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="File Portability">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.advanced.props.file-portability"></a>File Portability</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Fortunately for Subversion users who routinely find
|
||||
themselves on different computers with different operating
|
||||
systems, Subversion's command-line program behaves almost
|
||||
identically on all those systems. If you know how to wield
|
||||
<span class="command"><strong>svn</strong></span> on one platform, you know how to wield it
|
||||
everywhere.</p>
|
||||
<p>However, the same is not always true of other general classes
|
||||
of software or of the actual files you keep in Subversion. For
|
||||
example, on a Windows machine, the definition of a <span class="quote">“<span class="quote">text
|
||||
file</span>”</span> would be similar to that used on a Linux box, but
|
||||
with a key difference—the character sequences used to mark
|
||||
the ends of the lines of those files. There are other
|
||||
differences, too. Unix platforms have (and Subversion supports)
|
||||
symbolic links; Windows does not. Unix platforms use filesystem
|
||||
permission to determine executability; Windows uses filename
|
||||
extensions.</p>
|
||||
<p>Because Subversion is in no position to unite the whole
|
||||
world in common definitions and implementations of all of these
|
||||
things, the best it can do is to try to help make your life
|
||||
simpler when you need to work with your versioned files and
|
||||
directories on multiple computers and operating systems. This
|
||||
section describes some of the ways Subversion does this.</p>
|
||||
<div class="sect2" title="File Content Type">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.advanced.props.special.mime-type"></a>File Content Type</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Subversion joins the ranks of the many applications that
|
||||
recognize and make use of Multipurpose Internet Mail
|
||||
Extensions (MIME) content types. Besides being a
|
||||
general-purpose storage location for a file's content type,
|
||||
the value of the <code class="literal">svn:mime-type</code> file
|
||||
property determines some behavioral characteristics of
|
||||
Subversion itself.</p>
|
||||
<div class="sidebar" title="Identifying File Types">
|
||||
<p class="title">
|
||||
<b>Identifying File Types</b>
|
||||
</p>
|
||||
<p>Various programs on most modern operating systems make
|
||||
assumptions about the type and format of the contents of a
|
||||
file by the file's name, specifically its file extension.
|
||||
For example, files whose names end in
|
||||
<code class="filename">.txt</code> are generally assumed to be
|
||||
human-readable; that is, able to be understood by simple perusal
|
||||
rather than requiring complex processing to decipher. Files
|
||||
whose names end in <code class="filename">.png</code>, on the other
|
||||
hand, are assumed to be of the Portable Network Graphics
|
||||
type—not human-readable at all, and sensible only when
|
||||
interpreted by software that understands the PNG format and
|
||||
can render the information in that format as a raster
|
||||
image.</p>
|
||||
<p>Unfortunately, some of those extensions have changed
|
||||
their meanings over time. When personal computers first appeared,
|
||||
a file named <code class="filename">README.DOC</code> would have
|
||||
almost certainly been a plain-text file, just like today's
|
||||
<code class="filename">.txt</code> files. But by the mid-1990s, you
|
||||
could almost bet that a file of that name would not be a
|
||||
plain-text file at all, but instead a Microsoft Word
|
||||
document in a proprietary, non-human-readable format. But
|
||||
this change didn't occur overnight—there was certainly
|
||||
a period of confusion for computer users over what exactly
|
||||
they had in hand when they saw a <code class="filename">.DOC</code>
|
||||
file.<sup>[<a id="idp34224464" href="#ftn.idp34224464" class="footnote">14</a>]</sup></p>
|
||||
<p>The popularity of computer networking cast still more
|
||||
doubt on the mapping between a file's name and its content.
|
||||
With information being served across networks and generated
|
||||
dynamically by server-side scripts, there was often no real
|
||||
file per se, and therefore no filename. Web
|
||||
servers, for example, needed some other way to tell browsers
|
||||
what they were downloading so that the browser could do something
|
||||
intelligent with that information, whether that was to
|
||||
display the data using a program registered to handle that
|
||||
datatype or to prompt the user for where on the client
|
||||
machine to store the downloaded data.</p>
|
||||
<p>Eventually, a standard emerged for, among other things,
|
||||
describing the contents of a data stream. In 1996, RFC 2045
|
||||
was published. It was the first of five RFCs describing
|
||||
MIME. It describes the concept of media types and subtypes
|
||||
and recommends a syntax for the representation of those
|
||||
types. Today, MIME media types—or <span class="quote">“<span class="quote">MIME
|
||||
types</span>”</span>—are used almost universally across
|
||||
email applications, web servers, and other software as the
|
||||
de facto mechanism for clearing up the file content
|
||||
confusion.</p>
|
||||
</div>
|
||||
<p>For example, one of the benefits that Subversion typically
|
||||
provides is contextual, line-based merging of changes received
|
||||
from the server during an update into your working file. But
|
||||
for files containing nontextual data, there is often no
|
||||
concept of a <span class="quote">“<span class="quote">line.</span>”</span> So, for versioned files
|
||||
whose <code class="literal">svn:mime-type</code> property is set to a
|
||||
nontextual MIME type (generally, something that doesn't begin
|
||||
with <code class="literal">text/</code>, though there are exceptions),
|
||||
Subversion does not attempt to perform contextual merges
|
||||
during updates. Instead, any time you have locally modified a
|
||||
binary working copy file that is also being updated, your file
|
||||
is left untouched and Subversion creates two new files. One
|
||||
file has a <code class="filename">.oldrev</code> extension and contains
|
||||
the BASE revision of the file. The other file has a
|
||||
<code class="filename">.newrev</code> extension and contains the
|
||||
contents of the updated revision of the file. This behavior
|
||||
is really for the protection of the user against failed
|
||||
attempts at performing contextual merges on files that simply
|
||||
cannot be contextually merged.</p>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>The <code class="literal">svn:mime-type</code> property, when set
|
||||
to a value that does not indicate textual file contents, can
|
||||
cause some unexpected behaviors with respect to other
|
||||
properties. For example, since the idea of line endings
|
||||
(and therefore, line-ending conversion) makes no sense when
|
||||
applied to nontextual files, Subversion will prevent you
|
||||
from setting the <code class="literal">svn:eol-style</code> property
|
||||
on such files. This is obvious when attempted on a single
|
||||
file target—<span class="command"><strong>svn propset</strong></span> will error
|
||||
out. But it might not be as clear if you perform a
|
||||
recursive property set, where Subversion will silently skip
|
||||
over files that it deems unsuitable for a given
|
||||
property.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p>Subversion provides a number of mechanisms by which to
|
||||
automatically set the <code class="literal">svn:mime-type</code>
|
||||
property on a versioned file. See
|
||||
<a class="xref" href="svn.advanced.props.html#svn.advanced.props.auto" title="Automatic Property Setting">the section called “Automatic Property Setting”</a> for details.</p>
|
||||
<p>Also, if the <code class="literal">svn:mime-type</code> property is
|
||||
set, then the Subversion Apache module will use its value to
|
||||
populate the <code class="literal">Content-type:</code> HTTP header when
|
||||
responding to GET requests. This gives your web browser a
|
||||
crucial clue about how to display a file when you use it to
|
||||
peruse your Subversion repository's contents.</p>
|
||||
</div>
|
||||
<div class="sect2" title="File Executability">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.advanced.props.special.executable"></a>File Executability</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>On many operating systems, the ability to execute a file
|
||||
as a command is governed by the presence of an execute
|
||||
permission bit. This bit usually defaults to being disabled,
|
||||
and must be explicitly enabled by the user for each file that
|
||||
needs it. But it would be a monumental hassle to have to
|
||||
remember exactly which files in a freshly checked-out working
|
||||
copy were supposed to have their executable bits toggled on,
|
||||
and then to have to do that toggling. So, Subversion provides
|
||||
the <code class="literal">svn:executable</code> property as a way to
|
||||
specify that the executable bit for the file on which that
|
||||
property is set should be enabled, and Subversion honors that
|
||||
request when populating working copies with such files.</p>
|
||||
<p>This property has no effect on filesystems that have no
|
||||
concept of an executable permission bit, such as FAT32 and
|
||||
NTFS.<sup>[<a id="idp34244944" href="#ftn.idp34244944" class="footnote">15</a>]</sup> Also, although it has no defined
|
||||
values, Subversion will force its value
|
||||
to <code class="literal">*</code> when setting this property. Finally,
|
||||
this property is valid only on files, not on
|
||||
directories.</p>
|
||||
</div>
|
||||
<div class="sect2" title="End-of-Line Character Sequences">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.advanced.props.special.eol-style"></a>End-of-Line Character Sequences</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Unless otherwise noted using a versioned file's
|
||||
<code class="literal">svn:mime-type</code> property, Subversion
|
||||
assumes the file contains human-readable data. Generally
|
||||
speaking, Subversion uses this knowledge only to determine
|
||||
whether contextual difference reports for that file are
|
||||
possible. Otherwise, to Subversion, bytes are bytes.</p>
|
||||
<p>This means that by default, Subversion doesn't pay any
|
||||
attention to the type of <em class="firstterm">end-of-line (EOL)
|
||||
markers</em> used in your files. Unfortunately,
|
||||
different operating systems have different conventions about
|
||||
which character sequences represent the end of a line of text
|
||||
in a file. For example, the usual line-ending token used by
|
||||
software on the Windows platform is a pair of ASCII control
|
||||
characters—a carriage return (<code class="literal">CR</code>)
|
||||
followed by a line feed (<code class="literal">LF</code>). Unix
|
||||
software, however, just uses the <code class="literal">LF</code>
|
||||
character to denote the end of a line.</p>
|
||||
<p>Not all of the various tools on these operating systems
|
||||
understand files that contain line endings in a format that
|
||||
differs from the <em class="firstterm">native line-ending
|
||||
style</em> of the operating system on which they are
|
||||
running. So, typically, Unix programs treat the
|
||||
<code class="literal">CR</code> character present in Windows files as a
|
||||
regular character (usually rendered as <code class="literal">^M</code>),
|
||||
and Windows programs combine all of the lines of a Unix file
|
||||
into one giant line because no carriage return-linefeed (or
|
||||
<code class="literal">CRLF</code>) character combination was found to
|
||||
denote the ends of the lines.</p>
|
||||
<p>This sensitivity to foreign EOL markers can be
|
||||
frustrating for folks who share a file across different
|
||||
operating systems. For example, consider a source code
|
||||
file, and developers that edit this file on both Windows and
|
||||
Unix systems. If all the developers always use tools that
|
||||
preserve the line-ending style of the file, no problems
|
||||
occur.</p>
|
||||
<p>But in practice, many common tools either fail to
|
||||
properly read a file with foreign EOL markers, or
|
||||
convert the file's line endings to the native style when the
|
||||
file is saved. If the former is true for a developer, he
|
||||
has to use an external conversion utility (such as
|
||||
<span class="command"><strong>dos2unix</strong></span> or its companion,
|
||||
<span class="command"><strong>unix2dos</strong></span>) to prepare the file for
|
||||
editing. The latter case requires no extra preparation.
|
||||
But both cases result in a file that differs from the
|
||||
original quite literally on every line! Prior to committing
|
||||
his changes, the user has two choices. Either he can use a
|
||||
conversion utility to restore the modified file to the same
|
||||
line-ending style that it was in before his edits were made,
|
||||
or he can simply commit the file—new EOL markers and
|
||||
all.</p>
|
||||
<p>The result of scenarios like these include wasted time
|
||||
and unnecessary modifications to committed files. Wasted
|
||||
time is painful enough. But when commits change every line
|
||||
in a file, this complicates the job of determining which of
|
||||
those lines were changed in a nontrivial way. Where was
|
||||
that bug really fixed? On what line was a syntax error
|
||||
introduced?</p>
|
||||
<p>The solution to this problem is the
|
||||
<code class="literal">svn:eol-style</code> property. When this
|
||||
property is set to a valid value, Subversion uses it to
|
||||
determine what special processing to perform on the file so
|
||||
that the file's line-ending style isn't flip-flopping with
|
||||
every commit that comes from a different operating
|
||||
system. The valid values are:</p>
|
||||
<div class="variablelist">
|
||||
<dl>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">native</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>This causes the file to contain the EOL markers
|
||||
that are native to the operating system on which
|
||||
Subversion was run. In other words, if a user on a
|
||||
Windows machine checks out a working copy that
|
||||
contains a file with an
|
||||
<code class="literal">svn:eol-style</code> property set to
|
||||
<code class="literal">native</code>, that file will contain
|
||||
<code class="literal">CRLF</code> EOL markers. A Unix user
|
||||
checking out a working copy that contains the same
|
||||
file will see <code class="literal">LF</code> EOL markers in his
|
||||
copy of the file.</p>
|
||||
<p>Note that Subversion will actually store the file
|
||||
in the repository using normalized
|
||||
<code class="literal">LF</code> EOL markers regardless of the
|
||||
operating system. This is basically transparent to
|
||||
the user, though.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">CRLF</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>This causes the file to contain
|
||||
<code class="literal">CRLF</code> sequences for EOL markers,
|
||||
regardless of the operating system in use.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">LF</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>This causes the file to contain
|
||||
<code class="literal">LF</code> characters for EOL markers,
|
||||
regardless of the operating system in use.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">CR</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>This causes the file to contain
|
||||
<code class="literal">CR</code> characters for EOL markers,
|
||||
regardless of the operating system in use. This
|
||||
line-ending style is not very common.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footnotes">
|
||||
<br />
|
||||
<hr width="100" align="left" />
|
||||
<div class="footnote">
|
||||
<p><sup>[<a id="ftn.idp34224464" href="#idp34224464" class="para">14</a>] </sup>You think that was rough? During that
|
||||
same era, WordPerfect also used <code class="filename">.DOC</code>
|
||||
for their proprietary file format's preferred
|
||||
extension!</p>
|
||||
</div>
|
||||
<div class="footnote">
|
||||
<p><sup>[<a id="ftn.idp34244944" href="#idp34244944" class="para">15</a>] </sup>The Windows filesystems use file
|
||||
extensions (such
|
||||
as <code class="filename">.EXE</code>, <code class="filename">.BAT</code>, and
|
||||
<code class="filename">.COM</code>) to denote executable
|
||||
files.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.advanced.props.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.advanced.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.advanced.props.special.ignore.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">Properties </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Ignoring Unversioned Items</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,104 @@
|
|||
<?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>Moving and Removing Repositories</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.reposadmin.html" title="Chapter 5. Repository Administration" />
|
||||
<link rel="prev" href="svn.reposadmin.maint.html" title="Repository Maintenance" />
|
||||
<link rel="next" href="svn.reposadmin.summary.html" title="Summary" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Moving and Removing Repositories</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.reposadmin.maint.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 5. Repository Administration</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.reposadmin.summary.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Moving and Removing Repositories">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.reposadmin.maint.moving-and-removing"></a>Moving and Removing Repositories</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Subversion repository data is wholly contained within the
|
||||
repository directory. As such, you can move a Subversion
|
||||
repository to some other location on disk, rename a repository,
|
||||
copy a repository, or delete a repository altogether using the
|
||||
tools provided by your operating system for manipulating
|
||||
directories—<span class="command"><strong>mv</strong></span>, <span class="command"><strong>cp
|
||||
-a</strong></span>, and <span class="command"><strong>rm -r</strong></span> on Unix platforms;
|
||||
<span class="command"><strong>copy</strong></span>, <span class="command"><strong>move</strong></span>, and
|
||||
<span class="command"><strong>rmdir /s /q</strong></span> on Windows; vast numbers of mouse
|
||||
and menu gyrations in various graphical file explorer
|
||||
applications, and so on.</p>
|
||||
<p>Of course, there's often still more to be done when trying
|
||||
to cleanly affect changes such as this. For example, you might
|
||||
need to update your Subversion server configuration to point to
|
||||
the new location of a relocated repository or to remove
|
||||
configuration bits for a now-deleted repository. If you have
|
||||
automated processes that publish information from or about your
|
||||
repositories, they may need to be updated. Hook scripts might
|
||||
need to be reconfigured. Users may need to be notified. The list
|
||||
can go on indefinitely, or at least to the extent that you've
|
||||
built processes and procedures around your Subversion
|
||||
repository.</p>
|
||||
<p>In the case of a copied repository, you should also consider
|
||||
the fact that Subversion uses repository UUIDs to distinguish
|
||||
repositories. If you copy a Subversion repository using a
|
||||
typical shell recursive copy command, you'll wind up with two
|
||||
repositories that are identical in every way—including
|
||||
their UUIDs. In some circumstances, this might be desirable.
|
||||
But in the instances where it is not, you'll need to generate a
|
||||
new UUID for one of these identical repositories. See
|
||||
<a class="xref" href="svn.reposadmin.maint.html#svn.reposadmin.maint.uuids" title="Managing Repository UUIDs">the section called “Managing Repository UUIDs”</a> for more about
|
||||
managing repository UUIDs.</p>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.reposadmin.maint.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.reposadmin.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.reposadmin.summary.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">Repository Maintenance </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Summary</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,109 @@
|
|||
<?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>post-unlock</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.reposhooks.html" title="Repository Hooks" />
|
||||
<link rel="prev" href="svn.ref.reposhooks.pre-unlock.html" title="pre-unlock" />
|
||||
<link rel="next" href="svn.intro.html" title="Appendix A. Subversion Quick-Start Guide" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">post-unlock</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.pre-unlock.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Repository Hooks</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.intro.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="post-unlock">
|
||||
<a id="svn.ref.reposhooks.post-unlock"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44959936" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>post-unlock — Notification of a successful path unlock.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44963088"></a>
|
||||
<h2>Description</h2>
|
||||
<p>The <code class="literal">post-unlock</code> hook runs after one
|
||||
or more paths have been unlocked. It is typically used to
|
||||
send email notification of the unlock event.</p>
|
||||
<p>If the <code class="literal">post-unlock</code> hook returns a
|
||||
nonzero exit status, the unlock <span class="emphasis"><em>will
|
||||
not</em></span> be aborted since it has already
|
||||
completed. However, anything that the hook printed
|
||||
to <code class="filename">stderr</code> will be marshalled back to the
|
||||
client, making it easier to diagnose hook failures.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Input parameter(s)">
|
||||
<a id="idp44967600"></a>
|
||||
<h2>Input parameter(s)</h2>
|
||||
<p>The command-line arguments passed to the hook program,
|
||||
in order, are:</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>Repository path</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Authenticated username of the person who unlocked the
|
||||
paths</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<p>Additionally, the list of paths unlocked is passed to the
|
||||
hook program via standard input, one path per line.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Common uses">
|
||||
<a id="idp44971984"></a>
|
||||
<h2>Common uses</h2>
|
||||
<p>Unlock notification</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.reposhooks.pre-unlock.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.reposhooks.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.intro.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">pre-unlock </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Appendix A. Subversion Quick-Start Guide</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,475 @@
|
|||
<?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>Network Model</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.advanced.html" title="Chapter 3. Advanced Topics" />
|
||||
<link rel="prev" href="svn.advanced.changelists.html" title="Changelists" />
|
||||
<link rel="next" href="svn.advanced.summary.html" title="Summary" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Network Model</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.advanced.changelists.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 3. Advanced Topics</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.advanced.summary.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Network Model">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.serverconfig.netmodel"></a>Network Model</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>At some point, you're going to need to understand how your
|
||||
Subversion client communicates with its server. Subversion's
|
||||
networking layer is abstracted, meaning that Subversion clients
|
||||
exhibit the same general behaviors no matter what sort of server
|
||||
they are operating against. Whether speaking the HTTP protocol
|
||||
(<code class="literal">http://</code>) with the Apache HTTP Server or
|
||||
speaking the custom Subversion protocol
|
||||
(<code class="literal">svn://</code>) with <span class="command"><strong>svnserve</strong></span>,
|
||||
the basic network model is the same. In this section, we'll
|
||||
explain the basics of that network model, including how
|
||||
Subversion manages authentication and authorization
|
||||
matters.</p>
|
||||
<div class="sect2" title="Requests and Responses">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.serverconfig.netmodel.reqresp"></a>Requests and Responses</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>The Subversion client spends most of its time managing
|
||||
working copies. When it needs information from a remote
|
||||
repository, however, it makes a network request, and the
|
||||
server responds with an appropriate answer. The details of
|
||||
the network protocol are hidden from the user—the client
|
||||
attempts to access a URL, and depending on the URL scheme, a
|
||||
particular protocol is used to contact the server (see <a class="xref" href="svn.basic.in-action.html#svn.advanced.reposurls" title="Addressing the Repository">the section called “Addressing the Repository”</a>).</p>
|
||||
<div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Tip">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Tip]" src="images/tip.png" />
|
||||
</td>
|
||||
<th align="left">Tip</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Run <strong class="userinput"><code>svn --version</code></strong> to see which
|
||||
URL schemes and protocols the client knows how to use.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p>When the server process receives a client request, it
|
||||
often demands that the client identify itself. It issues
|
||||
an authentication challenge to the client, and the client
|
||||
responds by providing <em class="firstterm">credentials</em> back
|
||||
to the server. Once authentication is complete, the server
|
||||
responds with the original information that the client asked for.
|
||||
Notice that this system is different from systems such as CVS,
|
||||
where the client preemptively offers credentials (<span class="quote">“<span class="quote">logs
|
||||
in</span>”</span>) to the server before ever making a request. In
|
||||
Subversion, the server <span class="quote">“<span class="quote">pulls</span>”</span> credentials by
|
||||
challenging the client at the appropriate moment, rather than
|
||||
the client <span class="quote">“<span class="quote">pushing</span>”</span> them. This makes certain
|
||||
operations more elegant. For example, if a server is
|
||||
configured to allow anyone in the world to read a repository,
|
||||
the server will never issue an authentication challenge
|
||||
when a client attempts to <span class="command"><strong>svn checkout</strong></span>.</p>
|
||||
<p>If the particular network requests issued by the client
|
||||
result in a new revision being created in the repository
|
||||
(e.g., <span class="command"><strong>svn commit</strong></span>), Subversion uses the
|
||||
authenticated username associated with those requests as the
|
||||
author of the revision. That is, the authenticated user's
|
||||
name is stored as the value of the
|
||||
<code class="literal">svn:author</code> property on the new revision
|
||||
(see <a class="xref" href="svn.ref.properties.html" title="Subversion Properties">the section called “Subversion Properties”</a>). If
|
||||
the client was not authenticated (i.e., if the server
|
||||
never issued an authentication challenge), the revision's
|
||||
<code class="literal">svn:author</code> property is empty.
|
||||
</p>
|
||||
</div>
|
||||
<div class="sect2" title="Client Credentials">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.serverconfig.netmodel.creds"></a>Client Credentials</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Many Subversion servers are configured to require
|
||||
authentication. Sometimes anonymous read operations are
|
||||
allowed, while write operations must be authenticated. In
|
||||
other cases, reads and writes alike require authentication.
|
||||
Subversion's different server options understand different
|
||||
authentication protocols, but from the user's point of view,
|
||||
authentication typically boils down to usernames and
|
||||
passwords. Subversion clients offer several different ways to
|
||||
retrieve and store a user's authentication credentials, from
|
||||
interactive prompting for usernames and passwords to encrypted
|
||||
and non-encrypted on-disk data caches.</p>
|
||||
<p>The security-conscious reader will suspect immediately
|
||||
that there is reason for concern here. <span class="quote">“<span class="quote">Caching
|
||||
passwords on disk? That's terrible! You should never do
|
||||
that!</span>”</span> Don't worry—it's not as bad as it sounds.
|
||||
The following sections discuss the various types of credential
|
||||
caches that Subversion uses, when it uses them, and how to
|
||||
disable that functionality in whole or in part.</p>
|
||||
<div class="sect3" title="Caching credentials">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h4 class="title"><a id="svn.serverconfig.netmodel.credcache"></a>Caching credentials</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Subversion offers a remedy for the annoyance caused when
|
||||
users are forced to type their usernames and passwords over
|
||||
and over again. By default, whenever the command-line
|
||||
client successfully responds to a server's authentication
|
||||
challenge, credentials are cached on disk and keyed on a
|
||||
combination of the server's hostname, port, and
|
||||
authentication realm. This cache will then be automatically
|
||||
consulted in the future, avoiding the need for the user to
|
||||
re-type his or her authentication credentials. If seemingly
|
||||
suitable credentials are not present in the cache, or if the
|
||||
cached credentials ultimately fail to authenticate, the
|
||||
client will, by default, fall back to prompting the user for
|
||||
the necessary information.</p>
|
||||
<p>The Subversion developers recognize that on-disk caches
|
||||
of authentication credentials can be a security risk. To
|
||||
offset this, Subversion works with available mechanisms
|
||||
provided by the operating system and environment to try to
|
||||
minimize the risk of leaking this information.</p>
|
||||
<div class="itemizedlist">
|
||||
<ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<p>On Windows, the Subversion client stores passwords
|
||||
in the <code class="filename">%APPDATA%/Subversion/auth/</code>
|
||||
directory. On Windows 2000 and later, the standard
|
||||
Windows cryptography services are used to encrypt the
|
||||
password on disk. Because the encryption key is managed
|
||||
by Windows and is tied to the user's own login
|
||||
credentials, only the user can decrypt the cached
|
||||
password. (Note that if the user's Windows account
|
||||
password is reset by an administrator, all of the cached
|
||||
passwords become undecipherable. The Subversion client
|
||||
will behave as though they don't exist, prompting for
|
||||
passwords when required.)</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Similarly, on Mac OS X, the Subversion client stores
|
||||
all repository passwords in the login keyring (managed
|
||||
by the Keychain service), which is protected by the
|
||||
user's account password. User preference settings can
|
||||
impose additional policies, such as requiring that the
|
||||
user's account password be entered each time the
|
||||
Subversion password is used.</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>For other Unix-like operating systems, no single
|
||||
standard <span class="quote">“<span class="quote">keychain</span>”</span> service exists.
|
||||
However, the Subversion client knows how to store
|
||||
passwords securely using the <span class="quote">“<span class="quote">GNOME Keyring</span>”</span>
|
||||
and <span class="quote">“<span class="quote">KDE Wallet</span>”</span> services. Also, before
|
||||
storing unencrypted passwords in the
|
||||
<code class="filename">~/.subversion/auth/</code> caching area,
|
||||
the Subversion client will ask the user for permission
|
||||
to do so. Note that the <code class="filename">auth/</code>
|
||||
caching area is still permission-protected so that only
|
||||
the user (owner) can read data from it, not the world at
|
||||
large. The operating system's own file permissions protect
|
||||
the passwords from other non-administrative users on the
|
||||
same system, provided they have no direct physical access
|
||||
to the storage media of the home directory, or backups
|
||||
thereof.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>Of course, for the truly paranoid, none of these
|
||||
mechanisms meets the test of perfection. So for those folks
|
||||
willing to sacrifice convenience for the ultimate in security,
|
||||
Subversion provides various ways of disabling its credentials
|
||||
caching system altogether.</p>
|
||||
</div>
|
||||
<div class="sect3" title="Disabling password caching">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h4 class="title"><a id="svn.tour.initial.disabling-password-caching"></a>Disabling password caching</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>When you perform a Subversion operation that requires
|
||||
you to authenticate, by default Subversion tries to cache
|
||||
your authentication credentials on disk in encrypted form.
|
||||
On some systems, Subversion may be unable to encrypt your
|
||||
authentication data. In those situations, Subversion will
|
||||
ask whether you want to cache your credentials to disk in
|
||||
plaintext:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn checkout https://host.example.com:443/svn/private-repo
|
||||
-----------------------------------------------------------------------
|
||||
ATTENTION! Your password for authentication realm:
|
||||
|
||||
<https://host.example.com:443> Subversion Repository
|
||||
|
||||
can only be stored to disk unencrypted! You are advised to configure
|
||||
your system so that Subversion can store passwords encrypted, if
|
||||
possible. See the documentation for details.
|
||||
|
||||
You can avoid future appearances of this warning by setting the value
|
||||
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
|
||||
'/tmp/servers'.
|
||||
-----------------------------------------------------------------------
|
||||
Store password unencrypted (yes/no)?
|
||||
</pre>
|
||||
</div>
|
||||
<p>If you want the convenience of not having to continually
|
||||
reenter your password for future operations, you can
|
||||
answer <code class="literal">yes</code> to this prompt. If you're
|
||||
concerned about caching your Subversion passwords in
|
||||
plaintext and do not want to be asked about it again and
|
||||
again, you can disable caching of plaintext passwords either
|
||||
permanently, or on a server-per-server basis.</p>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>When considering how to use Subversion's password
|
||||
caching system, you'll want to consult any governing
|
||||
policies that are in place for your client
|
||||
computer—many companies have strict rules about the
|
||||
ways that their employees' authentication credentials
|
||||
should be stored.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p>To permanently disable caching of passwords in
|
||||
plaintext, add the line <code class="literal">store-plaintext-passwords =
|
||||
no</code> to the <code class="literal">[global]</code> section in
|
||||
the <code class="filename">servers</code> configuration file on the
|
||||
local machine. To disable plaintext password caching for a
|
||||
particular server, use the same setting in the appropriate
|
||||
group section in the <code class="filename">servers</code>
|
||||
configuration file. (See
|
||||
<a class="xref" href="svn.advanced.confarea.html#svn.advanced.confarea.opts" title="Configuration Options">the section called “Configuration Options”</a> in
|
||||
<a class="xref" href="svn.customization.html" title="Chapter 7. Customizing Your Subversion Experience">Chapter 7, <i>Customizing Your Subversion Experience</i></a> for details.)</p>
|
||||
<p>To disable password caching entirely for any single
|
||||
Subversion command-line operation, pass
|
||||
the <code class="option">--no-auth-cache</code> option to that command
|
||||
line. To permanently disable caching entirely, add the
|
||||
line <code class="literal">store-passwords = no</code> to your local
|
||||
machine's Subversion configuration file.</p>
|
||||
</div>
|
||||
<div class="sect3" title="Removing cached credentials">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h4 class="title"><a id="svn.tour.initial.authn-cache-purge"></a>Removing cached credentials</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Sometimes users will want to remove specific credentials
|
||||
from the disk cache. To do this, you need to navigate into
|
||||
the <code class="filename">auth/</code> area and manually delete the
|
||||
appropriate cache file. Credentials are cached in individual
|
||||
files; if you look inside each file, you will see keys and
|
||||
values. The <code class="literal">svn:realmstring</code> key describes
|
||||
the particular server realm that the file is associated
|
||||
with:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ ls ~/.subversion/auth/svn.simple/
|
||||
5671adf2865e267db74f09ba6f872c28
|
||||
3893ed123b39500bca8a0b382839198e
|
||||
5c3c22968347b390f349ff340196ed39
|
||||
|
||||
$ cat ~/.subversion/auth/svn.simple/5671adf2865e267db74f09ba6f872c28
|
||||
|
||||
K 8
|
||||
username
|
||||
V 3
|
||||
joe
|
||||
K 8
|
||||
password
|
||||
V 4
|
||||
blah
|
||||
K 15
|
||||
svn:realmstring
|
||||
V 45
|
||||
<https://svn.domain.com:443> Joe's repository
|
||||
END
|
||||
</pre>
|
||||
</div>
|
||||
<p>Once you have located the proper cache file, just delete
|
||||
it.</p>
|
||||
</div>
|
||||
<div class="sect3" title="Command-line authentication">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h4 class="title"><a id="svn.tour.initial.different-user"></a>Command-line authentication</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>All Subversion command-line operations accept
|
||||
the <code class="option">--username</code>
|
||||
and <code class="option">--password</code> options, which allow you to
|
||||
specify your username and password, respectively, so that
|
||||
Subversion isn't forced to prompt you for that information.
|
||||
This is especially handy if you need to invoke Subversion
|
||||
from a script and cannot rely on Subversion being able to
|
||||
locate valid cached credentials for you. These options are
|
||||
also helpful when Subversion has already cached
|
||||
authentication credentials for you, but you know they aren't
|
||||
the ones you want it to use. Perhaps several system users
|
||||
share a login to the system, but each have distinct
|
||||
Subversion identities. You can omit
|
||||
the <code class="option">--password</code> option from this pair if
|
||||
you wish Subversion to use only the provided username, but
|
||||
still prompt you for that username's password.</p>
|
||||
</div>
|
||||
<div class="sect3" title="Authentication wrap-up">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h4 class="title"><a id="svn.tour.initial.authn-wrapup"></a>Authentication wrap-up</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>One last word about <span class="command"><strong>svn</strong></span>'s
|
||||
authentication behavior, specifically regarding the
|
||||
<code class="option">--username</code> and <code class="option">--password</code>
|
||||
options. Many client subcommands accept these options, but it
|
||||
is important to understand that using these options does
|
||||
<span class="emphasis"><em>not</em></span> automatically send credentials to the
|
||||
server. As discussed earlier, the server <span class="quote">“<span class="quote">pulls</span>”</span>
|
||||
credentials from the client when it deems necessary; the
|
||||
client cannot <span class="quote">“<span class="quote">push</span>”</span> them at will. If a username
|
||||
and/or password are passed as options, they will be
|
||||
presented to the server only if the server requests them. These
|
||||
options are typically used to authenticate as a different user
|
||||
than Subversion would have chosen by default (such as your
|
||||
system login name) or when trying to avoid interactive
|
||||
prompting (such as when calling <span class="command"><strong>svn</strong></span> from a
|
||||
script).</p>
|
||||
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Note">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Note]" src="images/note.png" />
|
||||
</td>
|
||||
<th align="left">Note</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>A common mistake is to misconfigure a server so
|
||||
that it never issues an authentication challenge. When
|
||||
users pass <code class="option">--username</code> and
|
||||
<code class="option">--password</code> options to the client, they're
|
||||
surprised to see that they're never used; that is, new
|
||||
revisions still appear to have been committed
|
||||
anonymously!</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p>Here is a final summary that describes how a Subversion
|
||||
client behaves when it receives an authentication
|
||||
challenge.</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>First, the client checks whether the user specified
|
||||
any credentials as command-line options
|
||||
(<code class="option">--username</code> and/or
|
||||
<code class="option">--password</code>). If so, the client will try
|
||||
to use those credentials to authenticate against the
|
||||
server.</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>If no command-line credentials were provided, or the
|
||||
provided ones were invalid, the client looks up the server's
|
||||
hostname, port, and realm in the runtime configuration's
|
||||
<code class="filename">auth/</code> area, to see whether appropriate
|
||||
credentials are cached there. If so, it attempts to use
|
||||
those credentials to authenticate.</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Finally, if the previous mechanisms failed to
|
||||
successfully authenticate the user against the server, the
|
||||
client resorts to interactively prompting the user for
|
||||
valid credentials (unless instructed not to do so via the
|
||||
<code class="option">--non-interactive</code> option or its
|
||||
client-specific equivalents).</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<p>If the client successfully authenticates by any of these
|
||||
methods, it will attempt to cache the credentials on disk
|
||||
(unless the user has disabled this behavior, as mentioned
|
||||
earlier).</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.advanced.changelists.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.advanced.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.advanced.summary.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">Changelists </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Summary</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,109 @@
|
|||
<?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>post-commit</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.reposhooks.html" title="Repository Hooks" />
|
||||
<link rel="prev" href="svn.ref.reposhooks.pre-commit.html" title="pre-commit" />
|
||||
<link rel="next" href="svn.ref.reposhooks.pre-revprop-change.html" title="pre-revprop-change" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">post-commit</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.pre-commit.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Repository Hooks</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.pre-revprop-change.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="post-commit">
|
||||
<a id="svn.ref.reposhooks.post-commit"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44853104" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>post-commit — Notification of a successful commit.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44856192"></a>
|
||||
<h2>Description</h2>
|
||||
<p>The <code class="literal">post-commit</code> 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.</p>
|
||||
<p>If the <code class="literal">post-commit</code> hook returns a
|
||||
nonzero exit status, the commit <span class="emphasis"><em>will
|
||||
not</em></span> be aborted since it has already
|
||||
completed. However, anything that the hook printed
|
||||
to <code class="filename">stderr</code> will be marshalled back to the
|
||||
client, making it easier to diagnose hook failures.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Input parameter(s)">
|
||||
<a id="idp44860912"></a>
|
||||
<h2>Input parameter(s)</h2>
|
||||
<p>The command-line arguments passed to the hook program,
|
||||
in order, are:</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>Repository path</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Revision number created by the commit</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Common uses">
|
||||
<a id="idp44864736"></a>
|
||||
<h2>Common uses</h2>
|
||||
<p>Commit notification; tool integration</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.reposhooks.pre-commit.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.reposhooks.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.pre-revprop-change.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">pre-commit </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> pre-revprop-change</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,493 @@
|
|||
<?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>Path-Based Authorization</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<style type="text/css">
|
||||
body { background-image: url('images/draft.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: top left;
|
||||
/* The following properties make the watermark "fixed" on the page. */
|
||||
/* I think that's just a bit too distracting for the reader... */
|
||||
/* background-attachment: fixed; */
|
||||
/* background-position: center center; */
|
||||
}</style>
|
||||
<link rel="home" href="index.html" title="Version Control with Subversion [DRAFT]" />
|
||||
<link rel="up" href="svn.serverconfig.html" title="Chapter 6. Server Configuration" />
|
||||
<link rel="prev" href="svn.serverconfig.httpd.html" title="httpd, the Apache HTTP Server" />
|
||||
<link rel="next" href="svn.serverconfig.operational-logging.html" title="High-level Logging" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Path-Based Authorization</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.serverconfig.httpd.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 6. Server Configuration</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.serverconfig.operational-logging.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Path-Based Authorization">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.serverconfig.pathbasedauthz"></a>Path-Based Authorization</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Both Apache and <span class="command"><strong>svnserve</strong></span> are capable of
|
||||
granting (or denying) permissions to users. Typically this is
|
||||
done over the entire repository: a user can read the repository
|
||||
(or not), and she can write to the repository (or not). It's
|
||||
also possible, however, to define finer-grained access rules.
|
||||
One set of users may have permission to write to a certain
|
||||
directory in the repository, but not others; another directory
|
||||
might not even be readable by all but a few special
|
||||
people.</p>
|
||||
<p>Both servers use a common file format to describe these
|
||||
path-based access rules. In the case of Apache, one needs to
|
||||
load the <span class="command"><strong>mod_authz_svn</strong></span> module and then add
|
||||
the <code class="literal">AuthzSVNAccessFile</code> directive (within
|
||||
the <code class="filename">httpd.conf</code> file) pointing to your own
|
||||
access rules file. (For a full explanation, see
|
||||
<a class="xref" href="svn.serverconfig.httpd.html#svn.serverconfig.httpd.authz.perdir" title="Per-directory access control">the section called “Per-directory access control”</a>.) If
|
||||
you're using <span class="command"><strong>svnserve</strong></span>, you need to make
|
||||
the <code class="literal">authz-db</code> variable
|
||||
(within <code class="filename">svnserve.conf</code>) point to your access
|
||||
rules file.</p>
|
||||
<div class="sidebar" title="Do You Really Need Path-Based Access Control?">
|
||||
<p class="title">
|
||||
<b>Do You Really Need Path-Based Access Control?</b>
|
||||
</p>
|
||||
<p>A lot of administrators setting up Subversion for the
|
||||
first time tend to jump into path-based access control without
|
||||
giving it a lot of thought. The administrator usually knows
|
||||
which teams of people are working on which projects, so it's
|
||||
easy to jump in and grant certain teams access to certain
|
||||
directories and not others. It seems like a natural thing,
|
||||
and it appeases the administrator's desire to maintain tight
|
||||
control of the repository.</p>
|
||||
<p>Note, though, that there are often invisible (and
|
||||
visible!) costs associated with this feature. In the visible
|
||||
category, the server needs to do a lot more work to ensure
|
||||
that the user has the right to read or write each specific
|
||||
path; in certain situations, there's very noticeable
|
||||
performance loss. In the invisible category, consider the
|
||||
culture you're creating. Most of the time, while certain
|
||||
users <span class="emphasis"><em>shouldn't</em></span> be committing changes to
|
||||
certain parts of the repository, that social contract doesn't
|
||||
need to be technologically enforced. Teams can sometimes
|
||||
spontaneously collaborate with each other; someone may want to
|
||||
help someone else out by committing to an area she doesn't
|
||||
normally work on. By preventing this sort of thing at the
|
||||
server level, you're setting up barriers to unexpected
|
||||
collaboration. You're also creating a bunch of rules that
|
||||
need to be maintained as projects develop, new users are
|
||||
added, and so on. It's a bunch of extra work to
|
||||
maintain.</p>
|
||||
<p>Remember that this is a version control system! Even if
|
||||
somebody accidentally commits a change to something she
|
||||
shouldn't, it's easy to undo the change. And if a user
|
||||
commits to the wrong place with deliberate malice, it's a
|
||||
social problem anyway, and that the problem needs to be dealt
|
||||
with outside Subversion.</p>
|
||||
<p>So, before you begin restricting users' access rights, ask
|
||||
yourself whether there's a real, honest need for this, or
|
||||
whether it's just something that <span class="quote">“<span class="quote">sounds good</span>”</span> to
|
||||
an administrator. Decide whether it's worth sacrificing some
|
||||
server speed, and remember that there's very little risk
|
||||
involved; it's bad to become dependent on technology as a
|
||||
crutch for social problems.<sup>[<a id="idp39802688" href="#ftn.idp39802688" class="footnote">50</a>]</sup></p>
|
||||
<p>As an example to ponder, consider that the Subversion
|
||||
project itself has always had a notion of who is allowed to
|
||||
commit where, but it's always been enforced socially. This is
|
||||
a good model of community trust, especially for open source
|
||||
projects. Of course, sometimes there <span class="emphasis"><em>are</em></span>
|
||||
truly legitimate needs for path-based access control; within
|
||||
corporations, for example, certain types of data really can be
|
||||
sensitive, and access needs to be genuinely restricted to
|
||||
small groups of people.</p>
|
||||
</div>
|
||||
<p>Once your server knows where to find your access file, it's
|
||||
time to define the rules.</p>
|
||||
<p>The syntax of the file is the same familiar one used
|
||||
by <code class="filename">svnserve.conf</code> and the runtime
|
||||
configuration files. Lines that start with a hash
|
||||
(<code class="literal">#</code>) are ignored. In its simplest form, each
|
||||
section names a repository and path within it, as well as the
|
||||
authenticated usernames are the option names within each
|
||||
section. The value of each option describes the user's level of
|
||||
access to the repository path: either
|
||||
<code class="literal">r</code> (read-only) or <code class="literal">rw</code>
|
||||
(read/write). If the user is not mentioned at all, no access is
|
||||
allowed.</p>
|
||||
<p>To be more specific: the value of the section names is
|
||||
either of the form <code class="literal">[repos-name:path]</code> or of the
|
||||
form <code class="literal">[path]</code>.</p>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Prior to version 1.7, Subversion treated repository names
|
||||
and paths in a case-insensitive fashion for the purposes of
|
||||
access control, converting them to lower case internally
|
||||
before comparing them against the contents of your access
|
||||
file. It now does these comparisons case-sensitively. If you
|
||||
upgraded to Subversion 1.7 from an older version, you should
|
||||
review your access files for case correctness.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p>If you're using the
|
||||
<code class="literal">SVNParentPath</code> directive, it's important
|
||||
to specify the repository names in your sections. If you omit
|
||||
them, a section such as
|
||||
<code class="literal">[/some/dir]</code> will match the path
|
||||
<code class="filename">/some/dir</code> in <span class="emphasis"><em>every</em></span>
|
||||
repository. If you're using the <code class="literal">SVNPath</code>
|
||||
directive, however, it's fine to only define paths in your
|
||||
sections—after all, there's only one repository.</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[calc:/branches/calc/bug-142]
|
||||
harry = rw
|
||||
sally = r
|
||||
</pre>
|
||||
</div>
|
||||
<p>In this first example, the user <code class="literal">harry</code> has
|
||||
full read and write access on the
|
||||
<code class="filename">/branches/calc/bug-142</code> directory in the
|
||||
<code class="literal">calc</code> repository, but the user
|
||||
<code class="literal">sally</code> has read-only access. Any other users
|
||||
are blocked from accessing this directory.</p>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p><span class="command"><strong>mod_dav_svn</strong></span> offers a directive,
|
||||
<code class="literal">SVNReposName</code>, which allows administrators
|
||||
to define a more human-friendly name, of sorts, for a
|
||||
repository:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
<Location /svn/calc>
|
||||
SVNPath /var/svn/calc
|
||||
SVNReposName "Calculator Application"
|
||||
…
|
||||
</pre>
|
||||
</div>
|
||||
<p>This allows <span class="command"><strong>mod_dav_svn</strong></span> to identify the
|
||||
repository by something other than merely its server directory
|
||||
basename—<code class="filename">calc</code>, in the previous
|
||||
example—when providing directory listings of repository
|
||||
content. Be aware, however, that when consulting the access
|
||||
file for authorization rules, Subversion uses this repository
|
||||
basename for comparison, <span class="emphasis"><em>not</em></span> any
|
||||
configured human-friendly name.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p>Of course, permissions are inherited from parent to child
|
||||
directory. That means we can specify a subdirectory with a
|
||||
different access policy for Sally:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[calc:/branches/calc/bug-142]
|
||||
harry = rw
|
||||
sally = r
|
||||
|
||||
# give sally write access only to the 'testing' subdir
|
||||
[calc:/branches/calc/bug-142/testing]
|
||||
sally = rw
|
||||
</pre>
|
||||
</div>
|
||||
<p>Now Sally can write to the <code class="filename">testing</code>
|
||||
subdirectory of the branch, but can still only read other parts.
|
||||
Harry, meanwhile, continues to have complete read/write access
|
||||
to the whole branch.</p>
|
||||
<p>It's also possible to explicitly deny permission to someone
|
||||
via inheritance rules, by setting the username variable to
|
||||
nothing:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[calc:/branches/calc/bug-142]
|
||||
harry = rw
|
||||
sally = r
|
||||
|
||||
[calc:/branches/calc/bug-142/secret]
|
||||
harry =
|
||||
</pre>
|
||||
</div>
|
||||
<p>In this example, Harry has read/write access to the
|
||||
entire <code class="filename">bug-142</code> tree, but has absolutely no
|
||||
access at all to the <code class="filename">secret</code> subdirectory
|
||||
within it.</p>
|
||||
<div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Tip">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Tip]" src="images/tip.png" />
|
||||
</td>
|
||||
<th align="left">Tip</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>The thing to remember is that the most specific path
|
||||
always matches first. The server tries to match the path
|
||||
itself, and then the parent of the path, then the parent of
|
||||
that, and so on. The net effect is that mentioning a specific
|
||||
path in the access file will always override any permissions
|
||||
inherited from parent directories.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p>By default, nobody has any access to the repository at all.
|
||||
That means that if you're starting with an empty file, you'll
|
||||
probably want to give at least read permission to all users at
|
||||
the root of the repository. You can do this by using the
|
||||
asterisk variable (<code class="literal">*</code>), which means <span class="quote">“<span class="quote">all
|
||||
users</span>”</span>:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[/]
|
||||
* = r
|
||||
</pre>
|
||||
</div>
|
||||
<p>This is a common setup; notice that no repository
|
||||
name is mentioned in the section name. This makes all repositories
|
||||
world-readable to all users. Once all users have read access to
|
||||
the repositories, you can give explicit
|
||||
<code class="literal">rw</code> permission to certain users on specific
|
||||
subdirectories within specific repositories.</p>
|
||||
<p>The asterisk variable (<code class="literal">*</code>) is also worth
|
||||
special mention because it's the
|
||||
<span class="emphasis"><em>only</em></span> pattern that matches an anonymous
|
||||
user. If you've configured your server block to allow a mixture
|
||||
of anonymous and authenticated access, all users start out
|
||||
accessing anonymously. The server looks for a
|
||||
<code class="literal">*</code> value defined for the path being accessed;
|
||||
if it can't find one, it demands real authentication from
|
||||
the client.</p>
|
||||
<p>The access file also allows you to define whole groups of
|
||||
users, much like the Unix <code class="filename">/etc/group</code>
|
||||
file:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[groups]
|
||||
calc-developers = harry, sally, joe
|
||||
paint-developers = frank, sally, jane
|
||||
everyone = harry, sally, joe, frank, jane
|
||||
</pre>
|
||||
</div>
|
||||
<p>Groups can be granted access control just like users.
|
||||
Distinguish them with an <span class="quote">“<span class="quote">at</span>”</span>
|
||||
(<code class="literal">@</code>) prefix:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[calc:/projects/calc]
|
||||
@calc-developers = rw
|
||||
|
||||
[paint:/projects/paint]
|
||||
jane = r
|
||||
@paint-developers = rw
|
||||
</pre>
|
||||
</div>
|
||||
<p>Another important fact is that group permissions are not
|
||||
overridden by individual user permissions. Rather, the
|
||||
<span class="emphasis"><em>combination</em></span> of all matching permissions is
|
||||
granted. In the prior example, Jane is a member of the
|
||||
<code class="literal">paint-developers</code> group, which has read/write
|
||||
access. Combined with the <code class="literal">jane = r</code> rule,
|
||||
this still gives Jane read/write access. Permissions for group
|
||||
members can only be extended beyond the permissions the group
|
||||
already has. Restricting users who are part of a group to less
|
||||
than their group's permissions is impossible.</p>
|
||||
<p>Groups can also be defined to contain other groups:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[groups]
|
||||
calc-developers = harry, sally, joe
|
||||
paint-developers = frank, sally, jane
|
||||
everyone = @calc-developers, @paint-developers
|
||||
</pre>
|
||||
</div>
|
||||
<p>Subversion 1.5 brought several useful features to the access
|
||||
file syntax—username aliases, authentication class tokens,
|
||||
and a new rule exclusion mechanism—all of which further
|
||||
simplify the maintenance of the access file. We'll describe
|
||||
first the username aliases feature.</p>
|
||||
<p>Some authentication systems expect and carry relatively
|
||||
short usernames of the sorts we've been describing
|
||||
here—<code class="literal">harry</code>,
|
||||
<code class="literal">sally</code>, <code class="literal">joe</code>, and so on. But
|
||||
other authentication systems—such as those which use LDAP
|
||||
stores or SSL client certificates—may carry much more
|
||||
complex usernames. For example, Harry's username in an
|
||||
LDAP-protected system might be <code class="literal">CN=Harold
|
||||
Hacker,OU=Engineers,DC=red-bean,DC=com</code>. With
|
||||
usernames like that, the access file can become quite bloated
|
||||
with long or obscure usernames that are easy to mistype.
|
||||
Fortunately, username aliases allow you to have to type the
|
||||
correct complex username only once, in a statement which assigns to
|
||||
it a more easily digestable alias.</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[aliases]
|
||||
harry = CN=Harold Hacker,OU=Engineers,DC=red-bean,DC=com
|
||||
sally = CN=Sally Swatterbug,OU=Engineers,DC=red-bean,DC=com
|
||||
joe = CN=Gerald I. Joseph,OU=Engineers,DC=red-bean,DC=com
|
||||
…
|
||||
</pre>
|
||||
</div>
|
||||
<p>Once you've defined a set of aliases, you can refer to the
|
||||
users elsewhere in the access file via their aliases in all the
|
||||
same places you could have instead used their actual usernames.
|
||||
Simply prepend an ampersand to the alias to distinguish it from
|
||||
a regular username:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[groups]
|
||||
calc-developers = &harry, &sally, &joe
|
||||
paint-developers = &frank, &sally, &jane
|
||||
everyone = @calc-developers, @paint-developers
|
||||
</pre>
|
||||
</div>
|
||||
<p>You might also choose to use aliases if your users'
|
||||
usernames change frequently. Doing so allows you to need to
|
||||
update only the aliases table when these username changes occur,
|
||||
instead of doing global-search-and-replace operations on the
|
||||
whole access file.</p>
|
||||
<p>Subversion also supports some <span class="quote">“<span class="quote">magic</span>”</span> tokens
|
||||
for helping you to make rule assignments based on the user's
|
||||
authentication class. One such token is
|
||||
the <code class="literal">$authenticated</code> token. Use this token
|
||||
where you would otherwise specify a username, alias, or group
|
||||
name in your authorization rules to declare the permissions
|
||||
granted to any user who has authenticated with any username at
|
||||
all. Similarly employed is the <code class="literal">$anonymous</code>
|
||||
token, except that it matches everyone who has
|
||||
<span class="emphasis"><em>not</em></span> authenticated with a username.</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[calendar:/projects/calendar]
|
||||
$anonymous = r
|
||||
$authenticated = rw
|
||||
</pre>
|
||||
</div>
|
||||
<p>Finally, another handy bit of access file syntax magic is
|
||||
the use of the tilde (<code class="literal">~</code>) character as an
|
||||
exclusion marker. In your authorization rules, prefixing a
|
||||
username, alias, group name, or authentication class token with
|
||||
a tilde character will cause Subversion to apply the rule to
|
||||
users who do <span class="emphasis"><em>not</em></span> match the rule. Though
|
||||
somewhat unnecessarily obfuscated, the following block is
|
||||
equivalent to the one in the previous example:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[calendar:/projects/calendar]
|
||||
~$authenticated = r
|
||||
~$anonymous = rw
|
||||
</pre>
|
||||
</div>
|
||||
<p>A less obvious example might be as follows:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
[groups]
|
||||
calc-developers = &harry, &sally, &joe
|
||||
calc-owners = &hewlett, &packard
|
||||
calc = @calc-developers, @calc-owners
|
||||
|
||||
# Any calc participant has read-write access...
|
||||
[calc:/projects/calc]
|
||||
@calc = rw
|
||||
|
||||
# ...but only allow the owners to make and modify release tags.
|
||||
[calc:/projects/calc/tags]
|
||||
~@calc-owners = r
|
||||
</pre>
|
||||
</div>
|
||||
<div class="sidebar" title="Partial Readability and Checkouts">
|
||||
<p class="title">
|
||||
<b>Partial Readability and Checkouts</b>
|
||||
</p>
|
||||
<p>If you're using Apache as your Subversion server and have
|
||||
made certain subdirectories of your repository unreadable to
|
||||
certain users, you need to be aware of a possible nonoptimal
|
||||
behavior with <span class="command"><strong>svn checkout</strong></span>.</p>
|
||||
<p>When the client requests a checkout or update over HTTP,
|
||||
it makes a single server request and receives a single (often
|
||||
large) server response. When the server receives the request,
|
||||
that is the <span class="emphasis"><em>only</em></span> opportunity Apache has
|
||||
to demand user authentication. This has some odd side
|
||||
effects. For example, if a certain subdirectory of the
|
||||
repository is readable only by user Sally, and user Harry
|
||||
checks out a parent directory, his client will respond to the
|
||||
initial authentication challenge as Harry. As the server
|
||||
generates the large response, there's no way it can resend an
|
||||
authentication challenge when it reaches the special
|
||||
subdirectory; thus the subdirectory is skipped altogether,
|
||||
rather than asking the user to reauthenticate as Sally at the
|
||||
right moment. In a similar way, if the root of the repository
|
||||
is anonymously world-readable, the entire checkout will be
|
||||
done without authentication—again, skipping the
|
||||
unreadable directory, rather than asking for authentication
|
||||
partway through.</p>
|
||||
</div>
|
||||
<div class="footnotes">
|
||||
<br />
|
||||
<hr width="100" align="left" />
|
||||
<div class="footnote">
|
||||
<p><sup>[<a id="ftn.idp39802688" href="#idp39802688" class="para">50</a>] </sup>A common theme in
|
||||
this book!</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.serverconfig.httpd.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.serverconfig.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.serverconfig.operational-logging.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">httpd, the Apache HTTP Server </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> High-level Logging</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,101 @@
|
|||
<?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>svnlook youngest</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnlook.html#svn.ref.svnlook.c" title="svnlook Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnlook.c.uuid.html" title="svnlook uuid" />
|
||||
<link rel="next" href="svn.ref.svnsync.html" title="svnsync—Subversion Repository Mirroring" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnlook youngest</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.uuid.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnlook Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnsync.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnlook youngest">
|
||||
<a id="svn.ref.svnlook.c.youngest"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44176816" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnlook youngest — Print the youngest revision number.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp44179904"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnlook youngest REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44181536"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Print the youngest revision number of a repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp44182784"></a>
|
||||
<h2>Options</h2>
|
||||
<p>None</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp44184000"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>This shows the youngest revision of our sample
|
||||
repository:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnlook youngest /var/svn/repos/
|
||||
42
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnlook.c.uuid.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnlook.html#svn.ref.svnlook.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnsync.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnlook uuid </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnsync—Subversion Repository Mirroring</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,413 @@
|
|||
<?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>Ignoring Unversioned Items</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.advanced.html" title="Chapter 3. Advanced Topics" />
|
||||
<link rel="prev" href="svn.advanced.props.file-portability.html" title="File Portability" />
|
||||
<link rel="next" href="svn.advanced.props.special.keywords.html" title="Keyword Substitution" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Ignoring Unversioned Items</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.advanced.props.file-portability.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 3. Advanced Topics</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.advanced.props.special.keywords.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Ignoring Unversioned Items">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.advanced.props.special.ignore"></a>Ignoring Unversioned Items</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>In any given working copy, there is a good chance that
|
||||
alongside all those versioned files and directories are other
|
||||
files and directories that are neither versioned nor intended
|
||||
to be. Text editors litter directories with backup files.
|
||||
Software compilers generate intermediate—or even
|
||||
final—files that you typically wouldn't bother to
|
||||
version. And users themselves drop various other files and
|
||||
directories wherever they see fit, often in version control
|
||||
working copies.</p>
|
||||
<p>It's ludicrous to expect Subversion working copies to be
|
||||
somehow impervious to this kind of clutter and impurity. In
|
||||
fact, Subversion counts it as a <span class="emphasis"><em>feature</em></span>
|
||||
that its working copies are just typical directories, just like
|
||||
unversioned trees. But these not-to-be-versioned files and
|
||||
directories can cause some annoyance for Subversion users. For
|
||||
example, because the <span class="command"><strong>svn add</strong></span> and <span class="command"><strong>svn
|
||||
import</strong></span> commands act recursively by default and don't
|
||||
know which files in a given tree you do and don't wish to
|
||||
version, it's easy to accidentally add stuff to version control
|
||||
that you didn't mean to. And because <span class="command"><strong>svn
|
||||
status</strong></span> reports, by default, every item of interest in
|
||||
a working copy—including unversioned files and
|
||||
directories—its output can get quite noisy where many of
|
||||
these things exist.</p>
|
||||
<p>So Subversion provides two ways for telling it which files
|
||||
you would prefer that it simply disregard. One of the ways
|
||||
involves the use of Subversion's runtime configuration system
|
||||
(see <a class="xref" href="svn.advanced.confarea.html" title="Runtime Configuration Area">the section called “Runtime Configuration Area”</a>), and therefore
|
||||
applies to all the Subversion operations that make use of that
|
||||
runtime configuration—generally those performed on a particular
|
||||
computer or by a particular user of a computer. The other way
|
||||
makes use of Subversion's directory property support and is more
|
||||
tightly bound to the versioned tree itself, and therefore
|
||||
affects everyone who has a working copy of that tree. Both of
|
||||
the mechanisms use <em class="firstterm">file patterns</em> (strings
|
||||
of literal and special wildcard characters used to match against
|
||||
filenames) to decide which files to ignore.</p>
|
||||
<p>The Subversion runtime configuration system provides an
|
||||
option, <code class="literal">global-ignores</code>, whose value is a
|
||||
whitespace-delimited collection of file patterns. The
|
||||
Subversion client checks these patterns against the names of the
|
||||
files that are candidates for addition to version control, as
|
||||
well as to unversioned files that the <span class="command"><strong>svn
|
||||
status</strong></span> command notices. If any file's name matches
|
||||
one of the patterns, Subversion will basically act as if the
|
||||
file didn't exist at all. This is really useful for the kinds
|
||||
of files that you almost never want to version, such as editor
|
||||
backup files such as Emacs' <code class="literal">*~</code> and
|
||||
<code class="literal">.*~</code> files.</p>
|
||||
<div class="sidebar" title="File Patterns in Subversion">
|
||||
<p class="title">
|
||||
<b>File Patterns in Subversion</b>
|
||||
</p>
|
||||
<p>File patterns (also called <em class="firstterm">globs</em> or
|
||||
<em class="firstterm">shell wildcard patterns</em>) are strings of
|
||||
characters that are intended to be matched against filenames,
|
||||
typically for the purpose of quickly selecting some subset of
|
||||
similar files from a larger grouping without having to
|
||||
explicitly name each file. The patterns contain two types of
|
||||
characters: regular characters, which are compared explicitly
|
||||
against potential matches, and special wildcard characters,
|
||||
which are interpreted differently for matching
|
||||
purposes.</p>
|
||||
<p>There are different types of file pattern syntaxes, but
|
||||
Subversion uses the one most commonly found in Unix systems
|
||||
implemented as the <code class="function">fnmatch</code> system
|
||||
function. It supports the following wildcards, described here
|
||||
simply for your convenience:</p>
|
||||
<div class="variablelist">
|
||||
<dl>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">?</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Matches any single character</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">*</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Matches any string of characters, including the
|
||||
empty string</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">[</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Begins a character class definition terminated by
|
||||
<code class="literal">]</code>, used for matching a subset of
|
||||
characters</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>You can see this same pattern matching behavior at a Unix
|
||||
shell prompt. The following are some examples of patterns
|
||||
being used for various things:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ ls ### the book sources
|
||||
appa-quickstart.xml ch06-server-configuration.xml
|
||||
appb-svn-for-cvs-users.xml ch07-customizing-svn.xml
|
||||
appc-webdav.xml ch08-embedding-svn.xml
|
||||
book.xml ch09-reference.xml
|
||||
ch00-preface.xml ch10-world-peace-thru-svn.xml
|
||||
ch01-fundamental-concepts.xml copyright.xml
|
||||
ch02-basic-usage.xml foreword.xml
|
||||
ch03-advanced-topics.xml images/
|
||||
ch04-branching-and-merging.xml index.xml
|
||||
ch05-repository-admin.xml styles.css
|
||||
$ ls ch* ### the book chapters
|
||||
ch00-preface.xml ch06-server-configuration.xml
|
||||
ch01-fundamental-concepts.xml ch07-customizing-svn.xml
|
||||
ch02-basic-usage.xml ch08-embedding-svn.xml
|
||||
ch03-advanced-topics.xml ch09-reference.xml
|
||||
ch04-branching-and-merging.xml ch10-world-peace-thru-svn.xml
|
||||
ch05-repository-admin.xml
|
||||
$ ls ch?0-* ### the book chapters whose numbers end in zero
|
||||
ch00-preface.xml ch10-world-peace-thru-svn.xml
|
||||
$ ls ch0[3578]-* ### the book chapters that Mike is responsible for
|
||||
ch03-advanced-topics.xml ch07-customizing-svn.xml
|
||||
ch05-repository-admin.xml ch08-embedding-svn.xml
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
<p>File pattern matching is a bit more complex than what
|
||||
we've described here, but this basic usage level tends to suit
|
||||
the majority of Subversion users.</p>
|
||||
</div>
|
||||
<p>When found on a versioned directory, the
|
||||
<code class="literal">svn:ignore</code> property is expected to contain a
|
||||
list of newline-delimited file patterns that Subversion should
|
||||
use to determine ignorable objects in that same directory.
|
||||
These patterns do not override those found in the
|
||||
<code class="literal">global-ignores</code> runtime configuration option,
|
||||
but are instead appended to that list. And it's worth noting
|
||||
again that, unlike the <code class="literal">global-ignores</code> option,
|
||||
the patterns found in the <code class="literal">svn:ignore</code>
|
||||
property apply only to the directory on which that property is
|
||||
set, and not to any of its subdirectories. The
|
||||
<code class="literal">svn:ignore</code> property is a good way to tell
|
||||
Subversion to ignore files that are likely to be present in
|
||||
every user's working copy of that directory, such as compiler
|
||||
output or—to use an example more appropriate to this
|
||||
book—the HTML, PDF, or PostScript files generated as the
|
||||
result of a conversion of some source DocBook XML files to a
|
||||
more legible output format.</p>
|
||||
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Note">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Note]" src="images/note.png" />
|
||||
</td>
|
||||
<th align="left">Note</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Subversion's support for ignorable file patterns extends
|
||||
only to the one-time process of adding unversioned
|
||||
files and directories to version control. Once an object is
|
||||
under Subversion's control, the ignore pattern mechanisms no
|
||||
longer apply to it. In other words, don't expect Subversion
|
||||
to avoid committing changes you've made to a versioned file
|
||||
simply because that file's name matches an ignore
|
||||
pattern—Subversion <span class="emphasis"><em>always</em></span> notices
|
||||
all of its versioned objects.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="sidebar" title="Ignore Patterns for CVS Users">
|
||||
<p class="title">
|
||||
<b>Ignore Patterns for CVS Users</b>
|
||||
</p>
|
||||
<p>The Subversion <code class="literal">svn:ignore</code> property is
|
||||
very similar in syntax and function to the CVS
|
||||
<code class="filename">.cvsignore</code> file. In fact, if you are
|
||||
migrating a CVS working copy to Subversion, you can directly
|
||||
migrate the ignore patterns by using the
|
||||
<code class="filename">.cvsignore</code> file as input file to the
|
||||
<span class="command"><strong>svn propset</strong></span> command:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn propset svn:ignore -F .cvsignore .
|
||||
property 'svn:ignore' set on '.'
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
<p>There are, however, some differences in the ways that CVS
|
||||
and Subversion handle ignore patterns. The two systems use
|
||||
the ignore patterns at some different times, and there are
|
||||
slight discrepancies in what the ignore patterns apply to.
|
||||
Also, Subversion does not recognize the use of the
|
||||
<code class="literal">!</code> pattern as a reset back to having no
|
||||
ignore patterns at all.</p>
|
||||
</div>
|
||||
<p>The global list of ignore patterns tends to be more a
|
||||
matter of personal taste and ties more closely to a user's
|
||||
particular tool chain than to the details of any particular
|
||||
working copy's needs. So, the rest of this section will focus
|
||||
on the <code class="literal">svn:ignore</code> property and its
|
||||
uses.</p>
|
||||
<p>Say you have the following output from <span class="command"><strong>svn
|
||||
status</strong></span>:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn status calc
|
||||
M calc/button.c
|
||||
? calc/calculator
|
||||
? calc/data.c
|
||||
? calc/debug_log
|
||||
? calc/debug_log.1
|
||||
? calc/debug_log.2.gz
|
||||
? calc/debug_log.3.gz
|
||||
</pre>
|
||||
</div>
|
||||
<p>In this example, you have made some property modifications
|
||||
to <code class="filename">button.c</code>, but in your working copy, you
|
||||
also have some unversioned files: the latest
|
||||
<code class="filename">calculator</code> program that you've compiled
|
||||
from your source code, a source file named
|
||||
<code class="filename">data.c</code>, and a set of debugging output
|
||||
logfiles. Now, you know that your build system always results
|
||||
in the <code class="filename">calculator</code> program being
|
||||
generated.<sup>[<a id="idp34328384" href="#ftn.idp34328384" class="footnote">16</a>]</sup> And you know that your test suite
|
||||
always leaves those debugging logfiles lying around. These
|
||||
facts are true for all working copies of this project, not just
|
||||
your own. And you know that you aren't interested in seeing
|
||||
those things every time you run
|
||||
<span class="command"><strong>svn status</strong></span>, and you are pretty sure that
|
||||
nobody else is interested in them either. So you use
|
||||
<strong class="userinput"><code>svn propedit svn:ignore calc</code></strong> to add some
|
||||
ignore patterns to the <code class="filename">calc</code>
|
||||
directory.</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn propget svn:ignore calc
|
||||
calculator
|
||||
debug_log*
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
<p>After you've added this property, you will now have a local
|
||||
property modification on the <code class="filename">calc</code>
|
||||
directory. But notice what else is different about your
|
||||
<span class="command"><strong>svn status</strong></span> output:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn status
|
||||
M calc
|
||||
M calc/button.c
|
||||
? calc/data.c
|
||||
</pre>
|
||||
</div>
|
||||
<p>Now, all that cruft is missing from the output! Your
|
||||
<code class="filename">calculator</code> compiled program and all those
|
||||
logfiles are still in your working copy; Subversion just isn't
|
||||
constantly reminding you that they are present and unversioned.
|
||||
And now with all the uninteresting noise removed from the
|
||||
display, you are left with more intriguing items—such as
|
||||
that source code file <code class="filename">data.c</code> that you
|
||||
probably forgot to add to version control.</p>
|
||||
<p>Of course, this less-verbose report of your working copy
|
||||
status isn't the only one available. If you actually want to
|
||||
see the ignored files as part of the status report, you can pass
|
||||
the <code class="option">--no-ignore</code> option to Subversion:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn status --no-ignore
|
||||
M calc
|
||||
M calc/button.c
|
||||
I calc/calculator
|
||||
? calc/data.c
|
||||
I calc/debug_log
|
||||
I calc/debug_log.1
|
||||
I calc/debug_log.2.gz
|
||||
I calc/debug_log.3.gz
|
||||
</pre>
|
||||
</div>
|
||||
<p>As mentioned earlier, the list of file patterns to ignore is
|
||||
also used by <span class="command"><strong>svn add</strong></span> and <span class="command"><strong>svn
|
||||
import</strong></span>. Both of these operations involve asking
|
||||
Subversion to begin managing some set of files and directories.
|
||||
Rather than force the user to pick and choose which files in a
|
||||
tree she wishes to start versioning, Subversion uses the ignore
|
||||
patterns—both the global and the per-directory
|
||||
lists—to determine which files should not be swept into
|
||||
the version control system as part of a larger recursive
|
||||
addition or import operation. And here again, you can use the
|
||||
<code class="option">--no-ignore</code> option to tell Subversion to disregard
|
||||
its ignores list and operate on all the files and directories
|
||||
present.</p>
|
||||
<div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Tip">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Tip]" src="images/tip.png" />
|
||||
</td>
|
||||
<th align="left">Tip</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Even if <code class="literal">svn:ignore</code> is set, you may run
|
||||
into problems if you use shell wildcards in a command. Shell
|
||||
wildcards are expanded into an explicit list of targets before
|
||||
Subversion operates on them, so running <strong class="userinput"><code>svn
|
||||
<em class="replaceable"><code>SUBCOMMAND</code></em> *</code></strong> is just like
|
||||
running <strong class="userinput"><code>svn <em class="replaceable"><code>SUBCOMMAND</code></em>
|
||||
file1 file2 file3 …</code></strong>. In the case of the
|
||||
<span class="command"><strong>svn add</strong></span> command, this has an effect similar
|
||||
to passing the <code class="option">--no-ignore</code> option. So
|
||||
instead of using a wildcard, use <strong class="userinput"><code>svn add --force
|
||||
.</code></strong> to do a bulk scheduling of unversioned things for
|
||||
addition. The explicit target will ensure that the current
|
||||
directory isn't overlooked because of being already under
|
||||
version control, and the <code class="option">--force</code> option will
|
||||
cause Subversion to crawl through that directory, adding
|
||||
unversioned files while still honoring the
|
||||
<code class="literal">svn:ignore</code> property and
|
||||
<code class="literal">global-ignores</code> runtime configuration
|
||||
variable. Be sure to also provide the <code class="option">--depth
|
||||
files</code> option to the <span class="command"><strong>svn add</strong></span>
|
||||
command if you don't want a fully recursive crawl for things
|
||||
to add.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="footnotes">
|
||||
<br />
|
||||
<hr width="100" align="left" />
|
||||
<div class="footnote">
|
||||
<p><sup>[<a id="ftn.idp34328384" href="#idp34328384" class="para">16</a>] </sup>Isn't that the whole point of a build
|
||||
system?</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.advanced.props.file-portability.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.advanced.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.advanced.props.special.keywords.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">File Portability </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Keyword Substitution</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,434 @@
|
|||
<?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>Keyword Substitution</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.advanced.html" title="Chapter 3. Advanced Topics" />
|
||||
<link rel="prev" href="svn.advanced.props.special.ignore.html" title="Ignoring Unversioned Items" />
|
||||
<link rel="next" href="svn.advanced.sparsedirs.html" title="Sparse Directories" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Keyword Substitution</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.advanced.props.special.ignore.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 3. Advanced Topics</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.advanced.sparsedirs.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Keyword Substitution">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.advanced.props.special.keywords"></a>Keyword Substitution</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Subversion has the ability to substitute
|
||||
<em class="firstterm">keywords</em>—pieces of useful,
|
||||
dynamic information about a versioned file—into the
|
||||
contents of the file itself. Keywords generally provide
|
||||
information about the last modification made to the file.
|
||||
Because this information changes each time the
|
||||
file changes, and more importantly, just
|
||||
<span class="emphasis"><em>after</em></span> the file changes, it is a hassle
|
||||
for any process except the version control system to keep
|
||||
the data completely up to date. Left to human authors, the
|
||||
information would inevitably grow stale.</p>
|
||||
<p>For example, say you have a document in which you would
|
||||
like to display the last date on which it was modified. You
|
||||
could burden every author of that document to, just before
|
||||
committing their changes, also tweak the part of the
|
||||
document that describes when it was last changed. But
|
||||
sooner or later, someone would forget to do that. Instead,
|
||||
simply ask Subversion to perform keyword substitution on the
|
||||
<code class="literal">LastChangedDate</code> keyword. You control
|
||||
where the keyword is inserted into your document by placing
|
||||
a <em class="firstterm">keyword anchor</em> at the desired
|
||||
location in the file. This anchor is just a string of text
|
||||
formatted as
|
||||
<code class="literal">$</code><em class="replaceable"><code>KeywordName</code></em><code class="literal">$</code>.</p>
|
||||
<p>All keywords are case-sensitive where they appear as
|
||||
anchors in files: you must use the correct capitalization
|
||||
for the keyword to be expanded. You should consider the
|
||||
value of the <code class="literal">svn:keywords</code> property to be
|
||||
case-sensitive, too—certain keyword names will be recognized
|
||||
regardless of case, but this behavior is deprecated.</p>
|
||||
<p>Subversion defines the list of keywords available for
|
||||
substitution. That list contains the following five keywords,
|
||||
some of which have aliases that you can also use:</p>
|
||||
<div class="variablelist">
|
||||
<dl>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">Date</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>This keyword describes the last time the file was
|
||||
known to have been changed in the repository, and is of
|
||||
the form <code class="literal">$Date: 2006-07-22 21:42:37 -0700 (Sat,
|
||||
22 Jul 2006) $</code>. It may also be specified as
|
||||
<code class="literal">LastChangedDate</code>. Unlike the
|
||||
<code class="literal">Id</code> keyword, which uses UTC, the
|
||||
<code class="literal">Date</code> keyword displays dates using the
|
||||
local time zone.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">Revision</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>This keyword describes the last known revision in
|
||||
which this file changed in the repository, and looks
|
||||
something like <code class="literal">$Revision: 144 $</code>.
|
||||
It may also be specified as
|
||||
<code class="literal">LastChangedRevision</code> or
|
||||
<code class="literal">Rev</code>.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">Author</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>This keyword describes the last known user to
|
||||
change this file in the repository, and looks
|
||||
something like <code class="literal">$Author: harry $</code>.
|
||||
It may also be specified as
|
||||
<code class="literal">LastChangedBy</code>.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">HeadURL</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>This keyword describes the full URL to the latest
|
||||
version of the file in the repository, and looks
|
||||
something like <code class="literal">$HeadURL:
|
||||
http://svn.example.com/repos/trunk/calc.c $</code>.
|
||||
It may be abbreviated as
|
||||
<code class="literal">URL</code>.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">Id</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>This keyword is a compressed combination of the other
|
||||
keywords. Its substitution looks something like
|
||||
<code class="literal">$Id: calc.c 148 2006-07-28 21:30:43Z sally
|
||||
$</code>, and is interpreted to mean that the file
|
||||
<code class="filename">calc.c</code> was last changed in revision
|
||||
148 on the evening of July 28, 2006 by the user
|
||||
<code class="literal">sally</code>. The date displayed by this
|
||||
keyword is in UTC, unlike that of the
|
||||
<code class="literal">Date</code> keyword (which uses the local time
|
||||
zone).</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="literal">Header</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>This keyword is similar to the <code class="literal">Id</code>
|
||||
keyword but contains the full URL of the latest revision
|
||||
of the item, identical to <code class="literal">HeadURL</code>.
|
||||
Its substitution looks something like <code class="literal">$Header:
|
||||
http://svn.example.com/repos/trunk/calc.c
|
||||
148 2006-07-28 21:30:43Z sally $</code>.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>Several of the preceding descriptions use the phrase
|
||||
<span class="quote">“<span class="quote">last known</span>”</span> or similar wording. Keep in mind that
|
||||
keyword expansion is a client-side operation, and your client
|
||||
<span class="quote">“<span class="quote">knows</span>”</span> only about changes that have occurred in
|
||||
the repository when you update your working copy to include
|
||||
those changes. If you never update your working copy, your
|
||||
keywords will never expand to different values even if those
|
||||
versioned files are being changed regularly in the
|
||||
repository.</p>
|
||||
<p>Simply adding keyword anchor text to your file does nothing
|
||||
special. Subversion will never attempt to perform textual
|
||||
substitutions on your file contents unless explicitly asked to
|
||||
do so. After all, you might be writing a
|
||||
document<sup>[<a id="idp34391824" href="#ftn.idp34391824" class="footnote">17</a>]</sup> about how to use keywords, and
|
||||
you don't want Subversion to substitute your beautiful examples
|
||||
of unsubstituted keyword anchors!</p>
|
||||
<p>To tell Subversion whether to substitute keywords
|
||||
on a particular file, we again turn to the property-related
|
||||
subcommands. The <code class="literal">svn:keywords</code> property,
|
||||
when set on a versioned file, controls which keywords will
|
||||
be substituted on that file. The value is a space-delimited
|
||||
list of keyword names or aliases.</p>
|
||||
<p>For example, say you have a versioned file named
|
||||
<code class="filename">weather.txt</code> that looks like
|
||||
this:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
Here is the latest report from the front lines.
|
||||
$LastChangedDate$
|
||||
$Rev$
|
||||
Cumulus clouds are appearing more frequently as summer approaches.
|
||||
</pre>
|
||||
</div>
|
||||
<p>With no <code class="literal">svn:keywords</code> property set on
|
||||
that file, Subversion will do nothing special. Now, let's
|
||||
enable substitution of the
|
||||
<code class="literal">LastChangedDate</code> keyword.</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn propset svn:keywords "Date Author" weather.txt
|
||||
property 'svn:keywords' set on 'weather.txt'
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
<p>Now you have made a local property modification on the
|
||||
<code class="filename">weather.txt</code> file. You will see no
|
||||
changes to the file's contents (unless you made some of your
|
||||
own prior to setting the property). Notice that the file
|
||||
contained a keyword anchor for the <code class="literal">Rev</code>
|
||||
keyword, yet we did not include that keyword in the property
|
||||
value we set. Subversion will happily ignore requests to
|
||||
substitute keywords that are not present in the file and
|
||||
will not substitute keywords that are not present in the
|
||||
<code class="literal">svn:keywords</code> property value.</p>
|
||||
<p>Immediately after you commit this property change,
|
||||
Subversion will update your working file with the new
|
||||
substitute text. Instead of seeing your keyword anchor
|
||||
<code class="literal">$LastChangedDate$</code>, you'll see its
|
||||
substituted result. That result also contains the name of
|
||||
the keyword and continues to be delimited by the dollar sign
|
||||
(<code class="literal">$</code>) characters. And as we predicted, the
|
||||
<code class="literal">Rev</code> keyword was not substituted because
|
||||
we didn't ask for it to be.</p>
|
||||
<p>Note also that we set the <code class="literal">svn:keywords</code>
|
||||
property to <code class="literal">Date Author</code>, yet the keyword
|
||||
anchor used the alias <code class="literal">$LastChangedDate$</code>
|
||||
and still expanded correctly:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
Here is the latest report from the front lines.
|
||||
$LastChangedDate: 2006-07-22 21:42:37 -0700 (Sat, 22 Jul 2006) $
|
||||
$Rev$
|
||||
Cumulus clouds are appearing more frequently as summer approaches.
|
||||
</pre>
|
||||
</div>
|
||||
<p>If someone else now commits a change to
|
||||
<code class="filename">weather.txt</code>, your copy of that file
|
||||
will continue to display the same substituted keyword value
|
||||
as before—until you update your working copy. At that
|
||||
time, the keywords in your <code class="filename">weather.txt</code>
|
||||
file will be resubstituted with information that
|
||||
reflects the most recent known commit to that file.</p>
|
||||
<div class="sidebar" title="Where's $GlobalRev$?">
|
||||
<p class="title">
|
||||
<b>Where's $GlobalRev$?</b>
|
||||
</p>
|
||||
<p>New users are often confused by how the
|
||||
<code class="literal">$Rev$</code> keyword works. Since the repository
|
||||
has a single, globally increasing revision number, many people
|
||||
assume that it is this number that is reflected by the
|
||||
<code class="literal">$Rev$</code> keyword's value. But
|
||||
<code class="literal">$Rev$</code> expands to show the last revision in
|
||||
which the file <span class="emphasis"><em>changed</em></span>, not the last
|
||||
revision to which it was updated. Understanding this clears
|
||||
the confusion, but frustration often remains—without the
|
||||
support of a Subversion keyword to do so, how can you
|
||||
automatically get the global revision number into your
|
||||
files?</p>
|
||||
<p>To do this, you need external processing. Subversion
|
||||
ships with a tool called <span class="command"><strong>svnversion</strong></span>, which
|
||||
was designed for just this purpose. It crawls your working
|
||||
copy and generates as output the revision(s) it finds. You
|
||||
can use this program, plus some additional tooling, to embed
|
||||
that revision information into your files. For more
|
||||
information on <span class="command"><strong>svnversion</strong></span>, see <a class="xref" href="svn.ref.svnversion.html" title="svnversion—Subversion Working Copy Version Info">the section called “svnversion—Subversion Working Copy Version Info”</a>.</p>
|
||||
</div>
|
||||
<p>You can also instruct Subversion to maintain a fixed length
|
||||
(in terms of the number of bytes consumed) for the substituted
|
||||
keyword. By using a double colon (<code class="literal">::</code>) after
|
||||
the keyword name, followed by a number of space characters, you
|
||||
define that fixed width. When Subversion goes to substitute
|
||||
your keyword for the keyword and its value, it will essentially
|
||||
replace only those space characters, leaving the overall width
|
||||
of the keyword field unchanged. If the substituted value is
|
||||
shorter than the defined field width, there will be extra
|
||||
padding characters (spaces) at the end of the substituted field;
|
||||
if it is too long, it is truncated with a special hash
|
||||
(<code class="literal">#</code>) character just before the final dollar
|
||||
sign terminator.</p>
|
||||
<p>For example, say you have a document in which you have
|
||||
some section of tabular data reflecting the document's
|
||||
Subversion keywords. Using the original Subversion keyword
|
||||
substitution syntax, your file might look something
|
||||
like:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$Rev$: Revision of last commit
|
||||
$Author$: Author of last commit
|
||||
$Date$: Date of last commit
|
||||
</pre>
|
||||
</div>
|
||||
<p>Now, that looks nice and tabular at the start of things.
|
||||
But when you then commit that file (with keyword substitution
|
||||
enabled, of course), you see:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$Rev: 12 $: Revision of last commit
|
||||
$Author: harry $: Author of last commit
|
||||
$Date: 2006-03-15 02:33:03 -0500 (Wed, 15 Mar 2006) $: Date of last commit
|
||||
</pre>
|
||||
</div>
|
||||
<p>The result is not so beautiful. And you might be
|
||||
tempted to then adjust the file after the substitution so
|
||||
that it again looks tabular. But that holds only as long as
|
||||
the keyword values are the same width. If the last
|
||||
committed revision rolls into a new place value (say, from
|
||||
99 to 100), or if another person with a longer username
|
||||
commits the file, stuff gets all crooked again. However, if
|
||||
you are using Subversion 1.2 or later, you can use the new
|
||||
fixed-length keyword syntax and define some field widths that
|
||||
seem sane, so your file might look like this:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$Rev:: $: Revision of last commit
|
||||
$Author:: $: Author of last commit
|
||||
$Date:: $: Date of last commit
|
||||
</pre>
|
||||
</div>
|
||||
<p>You commit this change to your file. This time,
|
||||
Subversion notices the new fixed-length keyword syntax and
|
||||
maintains the width of the fields as defined by the padding
|
||||
you placed between the double colon and the trailing dollar
|
||||
sign. After substitution, the width of the fields is
|
||||
completely unchanged—the short values for
|
||||
<code class="literal">Rev</code> and <code class="literal">Author</code> are
|
||||
padded with spaces, and the long <code class="literal">Date</code>
|
||||
field is truncated by a hash character:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$Rev:: 13 $: Revision of last commit
|
||||
$Author:: harry $: Author of last commit
|
||||
$Date:: 2006-03-15 0#$: Date of last commit
|
||||
</pre>
|
||||
</div>
|
||||
<p>The use of fixed-length keywords is especially handy when
|
||||
performing substitutions into complex file formats that
|
||||
themselves use fixed-length fields for data, or for which the
|
||||
stored size of a given data field is overbearingly difficult to
|
||||
modify from outside the format's native application (as is true
|
||||
for the older Microsoft Office document formats).</p>
|
||||
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Note">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Note]" src="images/note.png" />
|
||||
</td>
|
||||
<th align="left">Note</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Subversion will only perform keyword substitution on files
|
||||
that it considers to be human-readable—this is, files
|
||||
which don't carry an <code class="literal">svn:mime-type</code> property
|
||||
whose value indicates otherwise. To force keyword
|
||||
substitution on binary files, you'll need to either lie or
|
||||
feign ignorance about their true content type. Understand,
|
||||
however, that doing so will also enable for those files other
|
||||
Subversion behaviors that you might not desire, including
|
||||
line-based differencing and merging. For more about content
|
||||
types, see <a class="xref" href="svn.advanced.props.file-portability.html#svn.advanced.props.special.mime-type" title="File Content Type">the section called “File Content Type”</a>.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Be aware that because the width of a keyword field is
|
||||
measured in bytes, the potential for corruption of
|
||||
multibyte values exists. For example, a username that
|
||||
contains some multibyte UTF-8 characters might suffer
|
||||
truncation in the middle of the string of bytes that make
|
||||
up one of those characters. The result will be a mere
|
||||
truncation when viewed at the byte level, but will likely
|
||||
appear as a string with an incorrect or garbled final
|
||||
character when viewed as UTF-8 text. It is conceivable
|
||||
that certain applications, when asked to load the file,
|
||||
would notice the broken UTF-8 text and deem the entire
|
||||
file corrupt, refusing to operate on the file
|
||||
altogether. So, when limiting keywords to a fixed size,
|
||||
choose a size that allows for this type of byte-wise
|
||||
expansion.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="footnotes">
|
||||
<br />
|
||||
<hr width="100" align="left" />
|
||||
<div class="footnote">
|
||||
<p><sup>[<a id="ftn.idp34391824" href="#idp34391824" class="para">17</a>] </sup>… or maybe even a section of a
|
||||
book …</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.advanced.props.special.ignore.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.advanced.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.advanced.sparsedirs.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">Ignoring Unversioned Items </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Sparse Directories</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,220 @@
|
|||
<?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>Server Optimization</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<style type="text/css">
|
||||
body { background-image: url('images/draft.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: top left;
|
||||
/* The following properties make the watermark "fixed" on the page. */
|
||||
/* I think that's just a bit too distracting for the reader... */
|
||||
/* background-attachment: fixed; */
|
||||
/* background-position: center center; */
|
||||
}</style>
|
||||
<link rel="home" href="index.html" title="Version Control with Subversion [DRAFT]" />
|
||||
<link rel="up" href="svn.serverconfig.html" title="Chapter 6. Server Configuration" />
|
||||
<link rel="prev" href="svn.serverconfig.operational-logging.html" title="High-level Logging" />
|
||||
<link rel="next" href="svn.serverconfig.multimethod.html" title="Supporting Multiple Repository Access Methods" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Server Optimization</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.serverconfig.operational-logging.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Chapter 6. Server Configuration</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.serverconfig.multimethod.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Server Optimization">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.serverconfig.optimization"></a>Server Optimization</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Part of the due diligence when offering a service such as a
|
||||
Subversion server involves capacity planning and performance
|
||||
tuning. Subversion doesn't tend to be particularly greedy in
|
||||
terms of server resources such as CPU cycles and memory, but any
|
||||
service can benefit from optimizations, especially when usage of
|
||||
the service skyrockets<sup>[<a id="idp39918848" href="#ftn.idp39918848" class="footnote">51</a>]</sup>. In this section, we'll discuss
|
||||
some ways you can tweak your Subversion server configuration
|
||||
to offer even better performance and scalability.</p>
|
||||
<div class="sect2" title="Data Caching">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.serverconfig.optimization.caching"></a>Data Caching</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Generally speaking, the most expensive part of a
|
||||
Subversion server's job is fetching data from the repository.
|
||||
Subversion 1.6 attempted to offset this cost by introducing
|
||||
some in-memory caching of certain classes of data read from
|
||||
the repository. But Subversion 1.7 takes this a step further,
|
||||
not only caching the results of some of the more costly
|
||||
operations, but also by providing in each of the available
|
||||
servers the means by which fine-tune the size and some
|
||||
behaviors of the cache.</p>
|
||||
<p>For <span class="command"><strong>svnserve</strong></span>, you can specify the size
|
||||
of the cache using the <code class="option">--memory-cache-size</code>
|
||||
(<code class="option">-M</code>) command-line option. You can also
|
||||
dictate whether <span class="command"><strong>svnserve</strong></span> should attempt to
|
||||
cache content fulltexts and deltas via the
|
||||
boolean <code class="option">--cache-fulltexts</code>
|
||||
and <code class="option">--cache-txdeltas</code> options,
|
||||
respectively.</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnserve -d -r /path/to/repositories \
|
||||
--memory-cache-size 1024 \
|
||||
--cache-txdeltas yes \
|
||||
--cache-fulltexts yes
|
||||
…
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
<p><span class="command"><strong>mod_dav_svn</strong></span> provides the same degree of
|
||||
cache configurability via <code class="filename">httpd.conf</code>
|
||||
directives.
|
||||
The <code class="literal">SVNInMemoryCacheSize</code>,
|
||||
<code class="literal">SVNCacheFullTexts</code>,
|
||||
and <code class="literal">SVNCacheTextDeltas</code> directives may be
|
||||
used at the server configuration level to control Subversion's
|
||||
data cache characteristics:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="programlisting">
|
||||
<IfModule dav_svn_module>
|
||||
# Enable a 1 Gb Subversion data cache for both fulltext and deltas.
|
||||
SVNInMemoryCacheSize 1048576
|
||||
SVNCacheTextDeltas On
|
||||
SVNCacheFullTexts On
|
||||
</IfModule>
|
||||
</pre>
|
||||
</div>
|
||||
<p>So what settings should you use? Certainly you need to
|
||||
consider what resources are available on your server. To get
|
||||
any benefit out of the cache at all, you'll probably want to
|
||||
let the cache be at least large enough to hold all the files
|
||||
which are most commonly accessed in your repository (for
|
||||
example, your project's <code class="filename">trunk</code> directory
|
||||
tree).</p>
|
||||
<div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Tip">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Tip]" src="images/tip.png" />
|
||||
</td>
|
||||
<th align="left">Tip</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Setting the memory cache size to <code class="literal">0</code>
|
||||
will disable this enhanced caching mechanism and cause
|
||||
Subversion to fall back to using the older cache mechanisms
|
||||
introduced in Subversion 1.6.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Note">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Note]" src="images/note.png" />
|
||||
</td>
|
||||
<th align="left">Note</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>Currently, only repositories which make use of the FSFS
|
||||
backend data store make use of this data caching
|
||||
functionality.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2" title="Network Compression of Data">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.serverconfig.optimization.compression"></a>Network Compression of Data</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Compressing the data transmitted across the wire can
|
||||
greatly reduce the size of those network transmissions, but
|
||||
comes at the cost of server (and client) CPU cycles.
|
||||
Depending on your server's CPU capacity, the typical access
|
||||
patterns of the clients who use your servers, and the
|
||||
bandwidth of the networks between them, you might wish to fine
|
||||
tune just how hard your server will work to compress the data
|
||||
it sends across the wire. To assist with this fine tuning
|
||||
process, Subversion 1.7 offers
|
||||
the <code class="option">--compression</code> (<code class="option">-c</code>)
|
||||
option to <span class="command"><strong>svnserve</strong></span> and
|
||||
the <code class="literal">SVNCompressionLevel</code> directive
|
||||
for <span class="command"><strong>mod_dav_svn</strong></span>. Both accept a value which
|
||||
is an integer between 0 and 9 (inclusive), where 9 offers the
|
||||
best compression of wire data, and 0 disables compression
|
||||
altogether.</p>
|
||||
<p>For example, on a local area network (LAN) with 1-Gigabit
|
||||
connections, it might not make sense to have the server
|
||||
compress its network transmissions (which also forces the
|
||||
clients to decompress them), as the network itself is so fast
|
||||
that users won't really benefit from the smaller overall
|
||||
network payload. On the other hand, servers which are
|
||||
accessed primarily by clients with low-bandwidth connections
|
||||
would be doing those clients a favor by minimizing the overall
|
||||
size of its network communications.</p>
|
||||
</div>
|
||||
<div class="footnotes">
|
||||
<br />
|
||||
<hr width="100" align="left" />
|
||||
<div class="footnote">
|
||||
<p><sup>[<a id="ftn.idp39918848" href="#idp39918848" class="para">51</a>] </sup>In Subversion's case, the
|
||||
skyrocketing affect is, of course, due to its cool name. Well,
|
||||
that and its popularity, reliability, ease of
|
||||
use….</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.serverconfig.operational-logging.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.serverconfig.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.serverconfig.multimethod.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">High-level Logging </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Supporting Multiple Repository Access Methods</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,219 @@
|
|||
<?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>Organization of This Book</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.preface.html" title="Preface" />
|
||||
<link rel="prev" href="svn.preface.howread.html" title="How to Read This Book" />
|
||||
<link rel="next" href="svn.preface.free.html" title="This Book Is Free" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Organization of This Book</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.preface.howread.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Preface</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.preface.free.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Organization of This Book">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.preface.organization"></a>Organization of This Book</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>The chapters that follow and their contents are listed
|
||||
here:</p>
|
||||
<div class="variablelist">
|
||||
<dl>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.basic.html" title="Chapter 1. Fundamental Concepts">Chapter 1, <i>Fundamental Concepts</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Explains the basics of version control and different
|
||||
versioning models, along with Subversion's repository,
|
||||
working copies, and revisions.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.tour.html" title="Chapter 2. Basic Usage">Chapter 2, <i>Basic Usage</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Walks you through a day in the life of a Subversion
|
||||
user. It demonstrates how to use a Subversion client to
|
||||
obtain, modify, and commit data.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.advanced.html" title="Chapter 3. Advanced Topics">Chapter 3, <i>Advanced Topics</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Covers more complex features that regular users will
|
||||
eventually come into contact with, such as versioned
|
||||
metadata, file locking, and peg revisions.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.branchmerge.html" title="Chapter 4. Branching and Merging">Chapter 4, <i>Branching and Merging</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Discusses branches, merges, and tagging, including
|
||||
best practices for branching and merging, common
|
||||
use cases, how to undo changes, and how to easily swing
|
||||
from one branch to the next.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.reposadmin.html" title="Chapter 5. Repository Administration">Chapter 5, <i>Repository Administration</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Describes the basics of the Subversion repository,
|
||||
how to create, configure, and maintain a repository, and
|
||||
the tools you can use to do all of this.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.serverconfig.html" title="Chapter 6. Server Configuration">Chapter 6, <i>Server Configuration</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Explains how to configure your Subversion server and
|
||||
offers different ways to access your repository:
|
||||
<code class="literal">HTTP</code>, the <code class="literal">svn</code>
|
||||
protocol, and local disk access. It also covers the details
|
||||
of authentication, authorization and anonymous
|
||||
access.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.customization.html" title="Chapter 7. Customizing Your Subversion Experience">Chapter 7, <i>Customizing Your Subversion Experience</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Explores the Subversion client configuration files,
|
||||
the handling of internationalized text, and how to make
|
||||
external tools cooperate with Subversion.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.developer.html" title="Chapter 8. Embedding Subversion">Chapter 8, <i>Embedding Subversion</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Describes the internals of Subversion, the
|
||||
Subversion filesystem, and the working copy
|
||||
administrative areas from a programmer's point of view.
|
||||
It also demonstrates how to use the public APIs to write a
|
||||
program that uses Subversion.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.ref.html" title="Chapter 9. Subversion Complete Reference">Chapter 9, <i>Subversion Complete Reference</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Explains in great detail every subcommand of
|
||||
<span class="command"><strong>svn</strong></span>, <span class="command"><strong>svnadmin</strong></span>, and
|
||||
<span class="command"><strong>svnlook</strong></span> with plenty of examples for
|
||||
the whole family!</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.intro.html" title="Appendix A. Subversion Quick-Start Guide">Appendix A, <i>Subversion Quick-Start Guide</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>For the impatient, a whirlwind explanation of how to
|
||||
install Subversion and start using it immediately. You
|
||||
have been warned.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.forcvs.html" title="Appendix B. Subversion for CVS Users">Appendix B, <i>Subversion for CVS Users</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Covers the similarities and differences between
|
||||
Subversion and CVS, with numerous suggestions on how to
|
||||
break all the bad habits you picked up from years of
|
||||
using CVS. Included are descriptions of Subversion
|
||||
revision numbers, versioned directories, offline
|
||||
operations, <span class="command"><strong>update</strong></span>
|
||||
versus <span class="command"><strong>status</strong></span>, branches, tags, metadata,
|
||||
conflict resolution, and authentication.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.webdav.html" title="Appendix C. WebDAV and Autoversioning">Appendix C, <i>WebDAV and Autoversioning</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Describes the details of WebDAV and DeltaV and how
|
||||
you can configure your Subversion repository to be
|
||||
mounted read/write as a DAV share.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<a class="xref" href="svn.copyright.html" title="Appendix D. Copyright">Appendix D, <i>Copyright</i></a>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>A copy of the Creative Commons Attribution License,
|
||||
under which this book is licensed.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.preface.howread.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.preface.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.preface.free.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">How to Read This Book </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> This Book Is Free</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,92 @@
|
|||
<?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>svnadmin list-dblogs</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.hotcopy.html" title="svnadmin hotcopy" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.list-unused-dblogs.html" title="svnadmin list-unused-dblogs" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin list-dblogs</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.hotcopy.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.list-unused-dblogs.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin list-dblogs">
|
||||
<a id="svn.ref.svnadmin.c.list-dblogs"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43717792" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin list-dblogs — Ask Berkeley DB which logfiles exist for a
|
||||
given Subversion repository (applies only to repositories
|
||||
using the <code class="literal">bdb</code> backend).</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43721712"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin list-dblogs REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43723296"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Berkeley DB creates logs of all changes to the
|
||||
repository, which allow it to recover in the face of
|
||||
catastrophe. Unless you enable
|
||||
<code class="literal">DB_LOG_AUTOREMOVE</code>, the logfiles
|
||||
accumulate, although most are no longer used and can be
|
||||
deleted to reclaim disk space. See <a class="xref" href="svn.reposadmin.maint.html#svn.reposadmin.maint.diskspace" title="Managing Disk Space">the section called “Managing Disk Space”</a> for more
|
||||
information.</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.svnadmin.c.hotcopy.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.list-unused-dblogs.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin hotcopy </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin list-unused-dblogs</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,121 @@
|
|||
<?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>pre-unlock</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.reposhooks.html" title="Repository Hooks" />
|
||||
<link rel="prev" href="svn.ref.reposhooks.post-lock.html" title="post-lock" />
|
||||
<link rel="next" href="svn.ref.reposhooks.post-unlock.html" title="post-unlock" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">pre-unlock</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.post-lock.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Repository Hooks</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.post-unlock.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="pre-unlock">
|
||||
<a id="svn.ref.reposhooks.pre-unlock"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44942416" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>pre-unlock — Notification of a path unlock attempt.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44945504"></a>
|
||||
<h2>Description</h2>
|
||||
<p>The <code class="literal">pre-unlock</code> 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.</p>
|
||||
<p>If the <code class="literal">pre-unlock</code> hook program
|
||||
returns a nonzero exit value, the unlock action is aborted
|
||||
and anything printed to <code class="filename">stderr</code> is marshalled back to the
|
||||
client.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Input parameter(s)">
|
||||
<a id="idp44949824"></a>
|
||||
<h2>Input parameter(s)</h2>
|
||||
<p>The command-line arguments passed to the hook program,
|
||||
in order, are:</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>Repository path</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Versioned path which is to be unlocked</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Authenticated username of the person attempting the
|
||||
unlock</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Lock token associated with the lock which is to be
|
||||
removed</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p><code class="literal">1</code> if the user is attempting to
|
||||
break the lock; <code class="literal">0</code> otherwise</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Common uses">
|
||||
<a id="idp44957440"></a>
|
||||
<h2>Common uses</h2>
|
||||
<p>Access control</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.reposhooks.post-lock.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.reposhooks.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.post-unlock.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">post-lock </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> post-unlock</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,146 @@
|
|||
<?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>pre-lock</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.reposhooks.html" title="Repository Hooks" />
|
||||
<link rel="prev" href="svn.ref.reposhooks.post-revprop-change.html" title="post-revprop-change" />
|
||||
<link rel="next" href="svn.ref.reposhooks.post-lock.html" title="post-lock" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">pre-lock</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.post-revprop-change.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Repository Hooks</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.post-lock.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="pre-lock">
|
||||
<a id="svn.ref.reposhooks.pre-lock"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44906976" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>pre-lock — Notification of a path lock attempt.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44910064"></a>
|
||||
<h2>Description</h2>
|
||||
<p>The <code class="literal">pre-lock</code> 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 <span class="quote">“<span class="quote">steal</span>”</span> the existing lock.</p>
|
||||
<p>If the <code class="literal">pre-lock</code> hook program returns
|
||||
a nonzero exit value, the lock action is aborted and
|
||||
anything printed to <code class="filename">stderr</code> is
|
||||
marshalled back to the client.</p>
|
||||
<p>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.</p>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>If the <code class="literal">pre-lock</code> script takes
|
||||
advantage of lock token dictation feature, the
|
||||
responsibility of generating a <span class="emphasis"><em>unique</em></span>
|
||||
lock token falls to the script itself. Failure to
|
||||
generate unique lock tokens may result in
|
||||
undefined—and very likely,
|
||||
undesired—behavior.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Input parameter(s)">
|
||||
<a id="idp44917776"></a>
|
||||
<h2>Input parameter(s)</h2>
|
||||
<p>The command-line arguments passed to the hook program,
|
||||
in order, are:</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>Repository path</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Versioned path that is to be locked</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Authenticated username of the person attempting the
|
||||
lock</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Comment provided when the lock was created</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p><code class="literal">1</code> if the user is attempting to
|
||||
steal an existing lock; <code class="literal">0</code>
|
||||
otherwise</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Common uses">
|
||||
<a id="idp44925216"></a>
|
||||
<h2>Common uses</h2>
|
||||
<p>Access control</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.reposhooks.post-revprop-change.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.reposhooks.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.post-lock.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">post-revprop-change </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> post-lock</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,118 @@
|
|||
<?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>pre-commit</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.reposhooks.html" title="Repository Hooks" />
|
||||
<link rel="prev" href="svn.ref.reposhooks.start-commit.html" title="start-commit" />
|
||||
<link rel="next" href="svn.ref.reposhooks.post-commit.html" title="post-commit" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">pre-commit</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.start-commit.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Repository Hooks</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.post-commit.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="pre-commit">
|
||||
<a id="svn.ref.reposhooks.pre-commit"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44837008" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>pre-commit — Notification just prior to commit completion.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44840160"></a>
|
||||
<h2>Description</h2>
|
||||
<p>The <code class="literal">pre-commit</code> 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).</p>
|
||||
<p>If the <code class="literal">pre-commit</code> hook program
|
||||
returns a nonzero exit value, the commit is aborted, the
|
||||
commit transaction is removed, and anything printed to
|
||||
<code class="filename">stderr</code> is marshalled back to the client.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Input parameter(s)">
|
||||
<a id="idp44844448"></a>
|
||||
<h2>Input parameter(s)</h2>
|
||||
<p>The command-line arguments passed to the hook program,
|
||||
in order, are:</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>Repository path</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Commit transaction name</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<p>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 <code class="literal">LOCK-TOKENS:</code>,
|
||||
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 (<code class="literal">|</code>) separator
|
||||
character, and finally the lock token string.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Common uses">
|
||||
<a id="idp44850592"></a>
|
||||
<h2>Common uses</h2>
|
||||
<p>Change validation and control</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.reposhooks.start-commit.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.reposhooks.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.post-commit.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">start-commit </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> post-commit</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,110 @@
|
|||
<?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>svnadmin setuuid</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.setrevprop.html" title="svnadmin setrevprop" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.upgrade.html" title="svnadmin upgrade" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin setuuid</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.setrevprop.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.upgrade.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin setuuid">
|
||||
<a id="svn.ref.svnadmin.c.setuuid"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43875712" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin setuuid — Reset the repository UUID.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43878800"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin setuuid REPOS_PATH [NEW_UUID]</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43880432"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Reset the repository UUID for the repository located
|
||||
at <em class="replaceable"><code>REPOS_PATH</code></em>.
|
||||
If <em class="replaceable"><code>NEW_UUID</code></em> is provided, use
|
||||
that as the new repository UUID; otherwise, generate a
|
||||
brand-new UUID for the repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43882704"></a>
|
||||
<h2>Options</h2>
|
||||
<p>None</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43883920"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>If you've <span class="command"><strong>svnsync</strong></span>ed <code class="filename">/var/svn/repos</code>
|
||||
to <code class="filename">/var/svn/repos-new</code> and intend to use <code class="filename">repos-new</code> as your
|
||||
canonical repository, you may want to change the UUID for
|
||||
<code class="filename">repos-new</code> to the UUID of <code class="filename">repos</code> so that your users don't
|
||||
have to check out a new working copy to accommodate the
|
||||
change:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin setuuid /var/svn/repos-new 2109a8dd-854f-0410-ad31-d604008985ab
|
||||
</pre>
|
||||
</div>
|
||||
<p>As you can see, <span class="command"><strong>svnadmin setuuid</strong></span>
|
||||
has no output upon success.</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.svnadmin.c.setrevprop.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.upgrade.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin setrevprop </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin upgrade</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,114 @@
|
|||
<?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>start-commit</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.reposhooks.html" title="Repository Hooks" />
|
||||
<link rel="prev" href="svn.ref.reposhooks.html" title="Repository Hooks" />
|
||||
<link rel="next" href="svn.ref.reposhooks.pre-commit.html" title="pre-commit" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">start-commit</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Repository Hooks</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.pre-commit.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="start-commit">
|
||||
<a id="svn.ref.reposhooks.start-commit"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44821280" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>start-commit — Notification of the beginning of a commit.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44824432"></a>
|
||||
<h2>Description</h2>
|
||||
<p>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.</p>
|
||||
<p>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 <code class="filename">stderr</code> is
|
||||
marshalled back to the client.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Input Parameter(s)">
|
||||
<a id="idp44827136"></a>
|
||||
<h2>Input Parameter(s)</h2>
|
||||
<p>The command-line arguments passed to the hook program,
|
||||
in order, are:</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>Repository path</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Authenticated username attempting the commit</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Colon-separated list of
|
||||
capabilities that a client passes to the server,
|
||||
including <code class="literal">depth</code>,
|
||||
<code class="literal">mergeinfo</code>, and
|
||||
<code class="literal">log-revprops</code> (new in Subversion 1.5).</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Common uses">
|
||||
<a id="idp44834000"></a>
|
||||
<h2>Common uses</h2>
|
||||
<p>Access control (e.g., temporarily lock out commits for
|
||||
some reason).</p>
|
||||
<p>A means to allow access only from clients that have
|
||||
certain capabilities.</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.reposhooks.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.reposhooks.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.pre-commit.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">Repository Hooks </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> pre-commit</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,189 @@
|
|||
<?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>Distinction Between Status and Update</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.forcvs.html" title="Appendix B. Subversion for CVS Users" />
|
||||
<link rel="prev" href="svn.forcvs.disconnected.html" title="More Disconnected Operations" />
|
||||
<link rel="next" href="svn.forcvs.branches-and-tags.html" title="Branches and Tags" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Distinction Between Status and Update</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.forcvs.disconnected.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Appendix B. Subversion for CVS Users</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.forcvs.branches-and-tags.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="sect1" title="Distinction Between Status and Update">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="svn.forcvs.status-vs-update"></a>Distinction Between Status and Update</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Subversion attempts to erase a lot of the confusion
|
||||
between the <span class="command"><strong>cvs status</strong></span> and
|
||||
<span class="command"><strong>cvs update</strong></span> commands.</p>
|
||||
<p>The <span class="command"><strong>cvs status</strong></span> command has two purposes:
|
||||
first, to show the user any local modifications in the working
|
||||
copy, and second, to show the user which files are out of date.
|
||||
Unfortunately, because of CVS's hard-to-read status output, many
|
||||
CVS users don't take advantage of this command at all. Instead,
|
||||
they've developed a habit of running <strong class="userinput"><code>cvs
|
||||
update</code></strong> or <strong class="userinput"><code>cvs -n update</code></strong> to quickly
|
||||
see their changes. If users forget to use
|
||||
the <code class="option">-n</code> option, this has the side effect of
|
||||
merging repository changes they may not be ready to deal
|
||||
with.</p>
|
||||
<p>Subversion removes this muddle by making the output of
|
||||
<span class="command"><strong>svn status</strong></span> easy to read for both humans and
|
||||
parsers. Also, <span class="command"><strong>svn update</strong></span> prints only
|
||||
information about files that are updated,
|
||||
<span class="emphasis"><em>not</em></span> local modifications.</p>
|
||||
<div class="sect2" title="Status">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.forcvs.status-vs-update.status"></a>Status</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p><span class="command"><strong>svn status</strong></span> prints all files that have
|
||||
local modifications. By default, the repository is not
|
||||
contacted. While this subcommand accepts a fair number of
|
||||
options, the following are the most commonly used ones:</p>
|
||||
<div class="variablelist">
|
||||
<dl>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="option">-u</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Contact the repository to determine, and then display,
|
||||
out-of-dateness information.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="option">-v</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Show <span class="emphasis"><em>all</em></span> entries under
|
||||
version control.</p>
|
||||
</dd>
|
||||
<dt>
|
||||
<span class="term">
|
||||
<code class="option">-N</code>
|
||||
</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>Run nonrecursively (do not descend into
|
||||
subdirectories).</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>The <span class="command"><strong>svn status</strong></span> command has two output
|
||||
formats. In the default <span class="quote">“<span class="quote">short</span>”</span> format, local
|
||||
modifications look like this:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn status
|
||||
M foo.c
|
||||
M bar/baz.c
|
||||
</pre>
|
||||
</div>
|
||||
<p>If you specify the <code class="option">--show-updates</code>
|
||||
(<code class="option">-u</code>) option, a longer output format is
|
||||
used:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svn status -u
|
||||
M 1047 foo.c
|
||||
* 1045 faces.html
|
||||
* bloo.png
|
||||
M 1050 bar/baz.c
|
||||
Status against revision: 1066
|
||||
</pre>
|
||||
</div>
|
||||
<p>In this case, two new columns appear. The second column
|
||||
contains an asterisk if the file or directory is out of date.
|
||||
The third column shows the working copy's revision number of the
|
||||
item. In the previous example, the asterisk indicates that
|
||||
<code class="filename">faces.html</code> would be patched if we updated,
|
||||
and that <code class="filename">bloo.png</code> is a newly added file in
|
||||
the repository. (The absence of any revision number next to
|
||||
<code class="filename">bloo.png</code> means that it doesn't yet exist in
|
||||
the working copy.)</p>
|
||||
<p>For a more detailed discussion of <span class="command"><strong>svn
|
||||
status</strong></span>, including an explanation of the status codes
|
||||
shown in the previous example, see
|
||||
<a class="xref" href="svn.tour.cycle.html#svn.tour.cycle.examine.status" title="See an overview of your changes">the section called “See an overview of your changes”</a>.</p>
|
||||
</div>
|
||||
<div class="sect2" title="Update">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h3 class="title"><a id="svn.forcvs.status-vs-update.update"></a>Update</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p><span class="command"><strong>svn update</strong></span> updates your working copy,
|
||||
and prints only information about files that it updates.</p>
|
||||
<p>Subversion has combined CVS's <code class="literal">P</code> and
|
||||
<code class="literal">U</code> codes into just <code class="literal">U</code>. When
|
||||
a merge or conflict occurs, Subversion simply prints
|
||||
<code class="literal">G</code> or <code class="literal">C</code>, rather than a
|
||||
whole sentence about it.</p>
|
||||
<p>For a more detailed discussion of <span class="command"><strong>svn
|
||||
update</strong></span>, see <a class="xref" href="svn.tour.cycle.html#svn.tour.cycle.update" title="Update Your Working Copy">the section called “Update Your Working Copy”</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.forcvs.disconnected.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.forcvs.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.forcvs.branches-and-tags.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">More Disconnected Operations </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Branches and Tags</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,126 @@
|
|||
<?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>post-revprop-change</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.reposhooks.html" title="Repository Hooks" />
|
||||
<link rel="prev" href="svn.ref.reposhooks.pre-revprop-change.html" title="pre-revprop-change" />
|
||||
<link rel="next" href="svn.ref.reposhooks.pre-lock.html" title="pre-lock" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">post-revprop-change</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.pre-revprop-change.html">Prev</a> </td>
|
||||
<th width="60%" align="center">Repository Hooks</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.pre-lock.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="post-revprop-change">
|
||||
<a id="svn.ref.reposhooks.post-revprop-change"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44886176" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>post-revprop-change — Notification of a successful revision property
|
||||
change.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44889264"></a>
|
||||
<h2>Description</h2>
|
||||
<p>The <code class="literal">post-revprop-change</code> 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
|
||||
<code class="literal">pre-revprop-change</code> hook, this hook will
|
||||
not run at all unless
|
||||
the <code class="literal">pre-revprop-change</code> hook is
|
||||
implemented. It is typically used to send email
|
||||
notification of the property change.</p>
|
||||
<p>If the <code class="literal">post-revprop-change</code> hook returns a
|
||||
nonzero exit status, the change <span class="emphasis"><em>will
|
||||
not</em></span> be aborted since it has already
|
||||
completed. However, anything that the hook printed
|
||||
to <code class="filename">stderr</code> will be marshalled back to the
|
||||
client, making it easier to diagnose hook failures.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Input parameter(s)">
|
||||
<a id="idp44895520"></a>
|
||||
<h2>Input parameter(s)</h2>
|
||||
<p>The command-line arguments passed to the hook program,
|
||||
in order, are:</p>
|
||||
<div class="orderedlist">
|
||||
<ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<p>Repository path</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Revision whose property was modified</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Authenticated username of the person making the change</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Name of the property changed</p>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<p>Change description: <code class="literal">A</code> (added),
|
||||
<code class="literal">D</code> (deleted), or <code class="literal">M</code>
|
||||
(modified)</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<p>Additionally, Subversion passes to the hook program, via
|
||||
standard input, the previous value of the property.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Common uses">
|
||||
<a id="idp44904352"></a>
|
||||
<h2>Common uses</h2>
|
||||
<p>Property change notification</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.reposhooks.pre-revprop-change.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.reposhooks.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.pre-lock.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">pre-revprop-change </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> pre-lock</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,105 @@
|
|||
<?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>svnadmin rmlocks</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.recover.html" title="svnadmin recover" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.rmtxns.html" title="svnadmin rmtxns" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin rmlocks</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.recover.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.rmtxns.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin rmlocks">
|
||||
<a id="svn.ref.svnadmin.c.rmlocks"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43811536" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin rmlocks — Unconditionally remove one or more locks from a
|
||||
repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43814704"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin rmlocks REPOS_PATH LOCKED_PATH...</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43816352"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Remove one or more locks from each <em class="replaceable"><code>LOCKED_PATH</code></em>.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43817952"></a>
|
||||
<h2>Options</h2>
|
||||
<p>None</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43819168"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>This deletes the locks on
|
||||
<code class="filename">tree.jpg</code> and
|
||||
<code class="filename">house.jpg</code> in the repository at
|
||||
<code class="filename">/var/svn/repos</code>:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin rmlocks /var/svn/repos tree.jpg house.jpg
|
||||
Removed lock on '/tree.jpg.
|
||||
Removed lock on '/house.jpg.
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.recover.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.rmtxns.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin recover </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin rmtxns</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,113 @@
|
|||
<?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>svnadmin lslocks</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.load.html" title="svnadmin load" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.lstxns.html" title="svnadmin lstxns" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin lslocks</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.load.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.lstxns.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin lslocks">
|
||||
<a id="svn.ref.svnadmin.c.lslocks"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43758656" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin lslocks — Print descriptions of all locks.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43761744"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin lslocks REPOS_PATH [PATH-IN-REPOS]</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43763392"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Print descriptions of all locks in
|
||||
repository <em class="replaceable"><code>REPOS_PATH</code></em>
|
||||
underneath the
|
||||
path <em class="replaceable"><code>PATH-IN-REPOS</code></em>.
|
||||
If <em class="replaceable"><code>PATH-IN-REPOS</code></em> is not
|
||||
provided, it defaults to the root directory of the
|
||||
repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43766112"></a>
|
||||
<h2>Options</h2>
|
||||
<p>None</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43767328"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>This lists the one locked file in the repository at
|
||||
<code class="filename">/var/svn/repos</code>:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="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.
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.load.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.lstxns.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin load </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin lstxns</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,93 @@
|
|||
<?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>svndumpfilter help</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svndumpfilter.html#svn.ref.svndumpfilter.c" title="svndumpfilter Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svndumpfilter.commands.c.include.html" title="svndumpfilter include" />
|
||||
<link rel="next" href="svn.ref.svnversion.html" title="svnversion—Subversion Working Copy Version Info" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svndumpfilter help</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svndumpfilter.commands.c.include.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svndumpfilter Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnversion.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svndumpfilter help">
|
||||
<a id="svn.ref.svndumpfilter.commands.c.help"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44572176" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svndumpfilter help — Help!</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp44575296"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svndumpfilter help [SUBCOMMAND...]</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44576880"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Displays the help message
|
||||
for <span class="command"><strong>svndumpfilter</strong></span>. 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.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp44579024"></a>
|
||||
<h2>Options</h2>
|
||||
<p>None</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.svndumpfilter.commands.c.include.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svndumpfilter.html#svn.ref.svndumpfilter.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnversion.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svndumpfilter include </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnversion—Subversion Working Copy Version Info</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,115 @@
|
|||
<?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>svnadmin setrevprop</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.setlog.html" title="svnadmin setlog" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.setuuid.html" title="svnadmin setuuid" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin setrevprop</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.setlog.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.setuuid.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin setrevprop">
|
||||
<a id="svn.ref.svnadmin.c.setrevprop"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43858416" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin setrevprop — Set a property on a revision.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43861504"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin setrevprop REPOS_PATH -r REVISION NAME FILE</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43863152"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Set the property <em class="replaceable"><code>NAME</code></em> on
|
||||
revision <em class="replaceable"><code>REVISION</code></em> to the
|
||||
contents of <em class="replaceable"><code>FILE</code></em>. Use
|
||||
<code class="option">--use-pre-revprop-change-hook</code>
|
||||
or <code class="option">--use-post-revprop-change-hook</code> to
|
||||
trigger the revision property-related hooks (e.g., if
|
||||
you want an email notification sent from your <code class="literal">post-revprop-change-hook</code>).</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43867488"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--revision (-r) ARG
|
||||
--use-post-revprop-change-hook
|
||||
--use-pre-revprop-change-hook
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43869424"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>The following sets the revision
|
||||
property <code class="literal">repository-photo</code> to the contents
|
||||
of the file <code class="filename">sandwich.png</code>:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin setrevprop /var/svn/repos -r 0 repository-photo sandwich.png
|
||||
</pre>
|
||||
</div>
|
||||
<p>As you can see, <span class="command"><strong>svnadmin setrevprop</strong></span>
|
||||
has no output upon success.</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.svnadmin.c.setlog.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.setuuid.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin setlog </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin setuuid</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,120 @@
|
|||
<?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>svnadmin hotcopy</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.help.html" title="svnadmin help" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.list-dblogs.html" title="svnadmin list-dblogs" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin hotcopy</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.help.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.list-dblogs.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin hotcopy">
|
||||
<a id="svn.ref.svnadmin.c.hotcopy"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43704112" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin hotcopy — Make a hot copy of a repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43707200"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43708848"></a>
|
||||
<h2>Description</h2>
|
||||
<p>This subcommand makes a full <span class="quote">“<span class="quote">hot</span>”</span> backup
|
||||
of your repository, including all hooks, configuration
|
||||
files, and, of course, database files. If you pass the
|
||||
<code class="option">--clean-logs</code> option,
|
||||
<span class="command"><strong>svnadmin</strong></span> 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.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43712096"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--clean-logs
|
||||
</pre>
|
||||
</div>
|
||||
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||||
<table border="0" summary="Warning">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25">
|
||||
<img alt="[Warning]" src="images/warning.png" />
|
||||
</td>
|
||||
<th align="left">Warning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<p>As described in <a class="xref" href="svn.reposadmin.planning.html#svn.reposadmin.basics.backends.bdb" title="Berkeley DB">the section called “Berkeley DB”</a>, hot-copied
|
||||
Berkeley DB repositories are <span class="emphasis"><em>not</em></span>
|
||||
portable across operating systems, nor will they work on
|
||||
machines with a different <span class="quote">“<span class="quote">endianness</span>”</span> than
|
||||
the machine where they were created.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.help.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.list-dblogs.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin help </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin list-dblogs</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,144 @@
|
|||
<?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>svnadmin recover</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.pack.html" title="svnadmin pack" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.rmlocks.html" title="svnadmin rmlocks" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin recover</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.pack.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.rmlocks.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin recover">
|
||||
<a id="svn.ref.svnadmin.c.recover"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43791648" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin recover — Bring a repository database back into a
|
||||
consistent state (applies only to repositories using the
|
||||
<code class="literal">bdb</code> backend). In addition, if
|
||||
<code class="filename">repos/conf/passwd</code> does not exist, it
|
||||
will create a default passwordfile .</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43796288"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin recover REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43797920"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Run this command if you get an error indicating that
|
||||
your repository needs to be recovered.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43799216"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--wait
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43801088"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>Recover a hung repository:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="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.
|
||||
</pre>
|
||||
</div>
|
||||
<p>Recovering the database requires an exclusive lock on
|
||||
the repository. (This is a <span class="quote">“<span class="quote">database lock</span>”</span>;
|
||||
see the sidebar <a class="xref" href="svn.advanced.locking.html#svn.advanced.locking.meanings" title="The Three Meanings of “Lock”">The Three Meanings of <span class="quote">“<span class="quote">Lock</span>”</span></a>.)
|
||||
If another process is accessing the repository,
|
||||
then <span class="command"><strong>svnadmin recover</strong></span> will error:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin recover /var/svn/repos
|
||||
svn: Failed to get exclusive repository access; perhaps another process
|
||||
such as httpd, svnserve or svn has it open?
|
||||
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
<p>The <code class="option">--wait</code> option, however, will
|
||||
cause <span class="command"><strong>svnadmin recover</strong></span> to wait
|
||||
indefinitely for other processes to disconnect:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin recover /var/svn/repos --wait
|
||||
Waiting on repository lock; perhaps another process has it open?
|
||||
|
||||
### time goes by…
|
||||
|
||||
Repository lock acquired.
|
||||
Please wait; recovering the repository may take some time...
|
||||
|
||||
Recovery completed.
|
||||
The latest repos revision is 34.
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.pack.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.rmlocks.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin pack </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin rmlocks</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,102 @@
|
|||
<?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>svnadmin deltify</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.create.html" title="svnadmin create" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.dump.html" title="svnadmin dump" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin deltify</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.create.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.dump.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin deltify">
|
||||
<a id="svn.ref.svnadmin.c.deltify"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43658240" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin deltify — Deltify changed paths in a revision range.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43661392"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43663040"></a>
|
||||
<h2>Description</h2>
|
||||
<p><span class="command"><strong>svnadmin deltify</strong></span> exists in
|
||||
current versions of Subversion only for historical reasons.
|
||||
This command is deprecated and no longer needed.</p>
|
||||
<p>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 <span class="emphasis"><em>very</em></span> little gain, and
|
||||
this <span class="quote">“<span class="quote">feature</span>”</span> was deprecated.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43666416"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--memory-cache-size
|
||||
--quiet (-q)
|
||||
--revision (-r) REV
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.create.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.dump.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin create </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin dump</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,100 @@
|
|||
<?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>svnadmin lstxns</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.lslocks.html" title="svnadmin lslocks" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.pack.html" title="svnadmin pack" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin lstxns</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.lslocks.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.pack.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin lstxns">
|
||||
<a id="svn.ref.svnadmin.c.lstxns"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43771888" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin lstxns — Print the names of all uncommitted transactions.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43775040"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin lstxns REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43776624"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Print the names of all uncommitted transactions. See
|
||||
<a class="xref" href="svn.reposadmin.maint.html#svn.reposadmin.maint.diskspace.deadtxns" title="Removing dead transactions">the section called “Removing dead transactions”</a>
|
||||
for information on how uncommitted transactions are
|
||||
created and what you should do with them.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43778864"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>List all outstanding transactions in a
|
||||
repository:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin lstxns /var/svn/repos/
|
||||
1w
|
||||
1x
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.lslocks.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.pack.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin lslocks </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin pack</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,172 @@
|
|||
<?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>svndumpfilter include</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svndumpfilter.html#svn.ref.svndumpfilter.c" title="svndumpfilter Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svndumpfilter.commands.c.exclude.html" title="svndumpfilter exclude" />
|
||||
<link rel="next" href="svn.ref.svndumpfilter.commands.c.help.html" title="svndumpfilter help" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svndumpfilter include</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svndumpfilter.commands.c.exclude.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svndumpfilter Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svndumpfilter.commands.c.help.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svndumpfilter include">
|
||||
<a id="svn.ref.svndumpfilter.commands.c.include"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44553504" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svndumpfilter include — Filter out nodes without given prefixes from
|
||||
dump stream.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp44556672"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svndumpfilter include PATH_PREFIX...</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44558304"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Can be used to include nodes that begin with one or
|
||||
more <em class="replaceable"><code>PATH_PREFIX</code></em>es in a
|
||||
filtered dump file (thus excluding all other paths).</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp44560080"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--drop-empty-revs
|
||||
--pattern
|
||||
--preserve-revprops
|
||||
--quiet
|
||||
--renumber-revs
|
||||
--skip-missing-merge-sources
|
||||
--targets ARG
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Example">
|
||||
<a id="idp44562048"></a>
|
||||
<h2>Example</h2>
|
||||
<p>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 <code class="filename">sandwiches</code> part of the
|
||||
repository, we'll include only that path:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="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'
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
<p>Beginning in Subversion 1.7,
|
||||
<span class="command"><strong>svndumpfilter</strong></span> can optionally treat
|
||||
the <em class="replaceable"><code>PATH_PREFIX</code></em>s not merely as
|
||||
explicit substrings, but as file patterns instead. So,
|
||||
for example, if you wished to include only paths which ended
|
||||
with <code class="filename">ks</code>, you would do the
|
||||
following:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="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'
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svndumpfilter.commands.c.exclude.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svndumpfilter.html#svn.ref.svndumpfilter.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svndumpfilter.commands.c.help.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svndumpfilter exclude </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svndumpfilter help</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,153 @@
|
|||
<?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>svndumpfilter exclude</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svndumpfilter.html#svn.ref.svndumpfilter.c" title="svndumpfilter Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svndumpfilter.html" title="svndumpfilter—Subversion History Filtering" />
|
||||
<link rel="next" href="svn.ref.svndumpfilter.commands.c.include.html" title="svndumpfilter include" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svndumpfilter exclude</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svndumpfilter.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svndumpfilter Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svndumpfilter.commands.c.include.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svndumpfilter exclude">
|
||||
<a id="svn.ref.svndumpfilter.commands.c.exclude"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp44535120" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svndumpfilter exclude — Filter out nodes with given prefixes from the dump stream.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp44538288"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svndumpfilter exclude PATH_PREFIX...</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp44539920"></a>
|
||||
<h2>Description</h2>
|
||||
<p>This can be used to exclude nodes that begin with one or
|
||||
more <em class="replaceable"><code>PATH_PREFIX</code></em>es from a
|
||||
filtered dump file.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp44541616"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--drop-empty-revs
|
||||
--pattern
|
||||
--preserve-revprops
|
||||
--quiet
|
||||
--renumber-revs
|
||||
--skip-missing-merge-sources
|
||||
--targets ARG
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp44543584"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>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 <span class="emphasis"><em>except</em></span>
|
||||
the <code class="filename">sandwiches</code> part of the
|
||||
repository, we'll exclude only that path:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="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'
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
<p>Beginning in Subversion 1.7,
|
||||
<span class="command"><strong>svndumpfilter</strong></span> can optionally treat
|
||||
the <em class="replaceable"><code>PATH_PREFIX</code></em>s not merely as
|
||||
explicit substrings, but as file patterns instead. So,
|
||||
for example, if you wished to filter out paths which ended
|
||||
with <code class="filename">.OLD</code>, you would do the
|
||||
following:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="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'
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svndumpfilter.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svndumpfilter.html#svn.ref.svndumpfilter.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svndumpfilter.commands.c.include.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svndumpfilter—Subversion History Filtering </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svndumpfilter include</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,152 @@
|
|||
<?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>svnadmin create</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.crashtest.html" title="svnadmin crashtest" />
|
||||
<link rel="next" href="svn.ref.svnadmin.c.deltify.html" title="svnadmin deltify" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin create</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.crashtest.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.deltify.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin create">
|
||||
<a id="svn.ref.svnadmin.c.create"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43635376" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin create — Create a new, empty repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43638464"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin create REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43640096"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Create a new, empty repository at the path provided.
|
||||
If the provided directory does not exist, it will be
|
||||
created for
|
||||
you.<sup>[<a id="idp43641200" href="#ftn.idp43641200" class="footnote">60</a>]</sup> As of
|
||||
Subversion 1.2, <span class="command"><strong>svnadmin</strong></span> creates new
|
||||
repositories with the
|
||||
<code class="literal">FSFS</code> filesystem backend by
|
||||
default.</p>
|
||||
<p>While <span class="command"><strong>svnadmin create</strong></span> will create
|
||||
the base directory for a new repository, it will not
|
||||
create intermediate directories. For example, if you
|
||||
have an empty directory named
|
||||
<code class="filename">/var/svn</code>, creating
|
||||
<code class="filename">/var/svn/repos</code> will work, while
|
||||
attempting to create
|
||||
<code class="filename">/var/svn/subdirectory/repos</code> 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 <span class="command"><strong>svnadmin
|
||||
create</strong></span> as a user with elevated privileges
|
||||
(such as the <code class="literal">root</code> user).</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43650416"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--bdb-log-keep
|
||||
--bdb-txn-nosync
|
||||
--config-dir DIR
|
||||
--fs-type TYPE
|
||||
--pre-1.4-compatible
|
||||
--pre-1.5-compatible
|
||||
--pre-1.6-compatible
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43652400"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>Creating a new repository is this easy:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ cd /var/svn
|
||||
$ svnadmin create repos
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
<p>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 <code class="option">--fs-type</code>
|
||||
option:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ cd /var/svn
|
||||
$ svnadmin create repos --fs-type fsfs
|
||||
$
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footnotes">
|
||||
<br />
|
||||
<hr width="100" align="left" />
|
||||
<div class="footnote">
|
||||
<p><sup>[<a id="ftn.idp43641200" href="#idp43641200" class="para">60</a>] </sup>Remember, <span class="command"><strong>svnadmin</strong></span>
|
||||
works only with local <span class="emphasis"><em>paths</em></span>, not
|
||||
<span class="emphasis"><em>URLs</em></span>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.crashtest.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnadmin.c.deltify.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin crashtest </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnadmin deltify</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
|
@ -0,0 +1,116 @@
|
|||
<?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>svnadmin verify</title>
|
||||
<link rel="stylesheet" href="styles.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2" />
|
||||
<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.svnadmin.html#svn.ref.svnadmin.c" title="svnadmin Subcommands" />
|
||||
<link rel="prev" href="svn.ref.svnadmin.c.upgrade.html" title="svnadmin upgrade" />
|
||||
<link rel="next" href="svn.ref.svnlook.html" title="svnlook—Subversion Repository Examination" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">svnadmin verify</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.upgrade.html">Prev</a> </td>
|
||||
<th width="60%" align="center">svnadmin Subcommands</th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="svn.ref.svnlook.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="refentry" title="svnadmin verify">
|
||||
<a id="svn.ref.svnadmin.c.verify"></a>
|
||||
<div class="titlepage"></div>
|
||||
<a id="idp43908704" class="indexterm"></a>
|
||||
<div class="refnamediv">
|
||||
<h2>Name</h2>
|
||||
<p>svnadmin verify — Verify the data stored in the repository.</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Synopsis">
|
||||
<a id="idp43911856"></a>
|
||||
<h2>Synopsis</h2>
|
||||
<p>
|
||||
<code class="literal">svnadmin verify REPOS_PATH</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Description">
|
||||
<a id="idp43913440"></a>
|
||||
<h2>Description</h2>
|
||||
<p>Run this command if you wish to verify the integrity
|
||||
of your repository. This basically iterates through all
|
||||
revisions in the repository by internally dumping all
|
||||
revisions and discarding the output—it's a good idea
|
||||
to run this on a regular basis to guard against latent
|
||||
hard disk failures and <span class="quote">“<span class="quote">bitrot.</span>”</span> If this
|
||||
command fails—which it will do at the first sign of
|
||||
a problem—that means your repository has at
|
||||
least one corrupted revision, and you should restore the
|
||||
corrupted revision from a backup (you did make a backup,
|
||||
didn't you?).</p>
|
||||
</div>
|
||||
<div class="refsect1" title="Options">
|
||||
<a id="idp43915808"></a>
|
||||
<h2>Options</h2>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
--memory-cache-size
|
||||
--quiet (-q)
|
||||
--revision (-r) ARG
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1" title="Examples">
|
||||
<a id="idp43917680"></a>
|
||||
<h2>Examples</h2>
|
||||
<p>Verify a hung repository:</p>
|
||||
<div class="informalexample">
|
||||
<pre class="screen">
|
||||
$ svnadmin verify /var/svn/repos/
|
||||
* Verified revision 1729.
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="svn.ref.svnadmin.c.upgrade.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="svn.ref.svnadmin.html#svn.ref.svnadmin.c">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="svn.ref.svnlook.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">svnadmin upgrade </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> svnlook—Subversion Repository Examination</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div xmlns="" id="svn-footer">
|
||||
<hr />
|
||||
<p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.7), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.<br />
|
||||
This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.<br />
|
||||
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>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue