summaryrefslogtreecommitdiffstats
path: root/git-cvsserver.html
diff options
context:
space:
mode:
authorJunio C Hamano <junio@hera.kernel.org>2008-07-06 05:20:31 +0000
committerJunio C Hamano <junio@hera.kernel.org>2008-07-06 05:20:31 +0000
commitba4b9286c25f18c7ebbb809ee5732a7810377ab6 (patch)
tree390507328a7564b65dc803683c34235700b97409 /git-cvsserver.html
parent05bf9c54a827e48b2b576488f5170a3490b5180e (diff)
downloadgit-htmldocs-ba4b9286c25f18c7ebbb809ee5732a7810377ab6.tar.gz
Autogenerated HTML docs for v1.5.6.2-212-g08b5
Diffstat (limited to 'git-cvsserver.html')
-rw-r--r--git-cvsserver.html276
1 files changed, 163 insertions, 113 deletions
diff --git a/git-cvsserver.html b/git-cvsserver.html
index 51269ed60..15935567a 100644
--- a/git-cvsserver.html
+++ b/git-cvsserver.html
@@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 7.0.2" />
+<meta name="generator" content="AsciiDoc 8.2.5" />
<style type="text/css">
/* Debug borders */
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
@@ -16,8 +16,13 @@ body {
margin: 1em 5% 1em 5%;
}
-a { color: blue; }
-a:visited { color: fuchsia; }
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
em {
font-style: italic;
@@ -39,13 +44,18 @@ h1, h2, h3, h4, h5, h6 {
line-height: 1.3;
}
-h1 {
+h1, h2, h3 {
border-bottom: 2px solid silver;
}
h2 {
- border-bottom: 2px solid silver;
padding-top: 0.5em;
}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
div.sectionbody {
font-family: serif;
@@ -70,7 +80,7 @@ span#author {
color: #527bbd;
font-family: sans-serif;
font-weight: bold;
- font-size: 1.2em;
+ font-size: 1.1em;
}
span#email {
}
@@ -139,6 +149,9 @@ div.sidebarblock > div.content {
padding: 0.5em;
}
+div.listingblock {
+ margin-right: 0%;
+}
div.listingblock > div.content {
border: 1px solid silver;
background: #f4f4f4;
@@ -148,9 +161,13 @@ div.listingblock > div.content {
div.quoteblock > div.content {
padding-left: 2.0em;
}
-div.quoteblock .attribution {
+
+div.attribution {
text-align: right;
}
+div.verseblock + div.attribution {
+ text-align: left;
+}
div.admonitionblock .icon {
vertical-align: top;
@@ -194,13 +211,12 @@ dd > *:first-child {
ul, ol {
list-style-position: outside;
}
-ol.olist2 {
+div.olist2 ol {
list-style-type: lower-alpha;
}
div.tableblock > table {
- border-color: #527bbd;
- border-width: 3px;
+ border: 3px solid #527bbd;
}
thead {
font-family: sans-serif;
@@ -214,6 +230,9 @@ div.hlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
+div.hlist td {
+ padding-bottom: 5px;
+}
td.hlist1 {
vertical-align: top;
font-style: italic;
@@ -226,7 +245,33 @@ td.hlist2 {
@media print {
div#footer-badges { display: none; }
}
-include::./stylesheets/xhtml11-manpage.css[]
+
+div#toctitle {
+ color: #527bbd;
+ font-family: sans-serif;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+include1::./stylesheets/xhtml11-manpage.css[]
/* Workarounds for IE6's broken and incomplete CSS2. */
div.sidebar-content {
@@ -255,6 +300,9 @@ div.exampleblock-content {
border-left: 2px solid silver;
padding-left: 0.5em;
}
+
+/* IE6 sets dynamically generated links as visited. */
+div#toc a:visited { color: blue; }
</style>
<title>git-cvsserver(1)</title>
</head>
@@ -272,23 +320,23 @@ git-cvsserver(1) Manual Page
</div>
<h2>SYNOPSIS</h2>
<div class="sectionbody">
-<p>SSH:</p>
+<div class="para"><p>SSH:</p></div>
<div class="verseblock">
<div class="content">export CVS_SERVER=git-cvsserver
<em>cvs</em> -d :ext:user@server/path/repo.git co &lt;HEAD_name&gt;</div></div>
-<p>pserver (/etc/inetd.conf):</p>
+<div class="para"><p>pserver (/etc/inetd.conf):</p></div>
<div class="verseblock">
<div class="content">cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver</div></div>
-<p>Usage:</p>
+<div class="para"><p>Usage:</p></div>
<div class="verseblock">
<div class="content"><em>git cvsserver</em> [options] [pserver|server] [&lt;directory&gt; &#8230;]</div></div>
</div>
-<h2>OPTIONS</h2>
+<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
-<p>All these options obviously only make sense if enforced by the server side.
+<div class="para"><p>All these options obviously only make sense if enforced by the server side.
They have been implemented to resemble the <a href="git-daemon.html">git-daemon(1)</a> options as
-closely as possible.</p>
-<dl>
+closely as possible.</p></div>
+<div class="vlist"><dl>
<dt>
--base-path &lt;path&gt;
</dt>
@@ -350,29 +398,29 @@ access still needs to be enabled by the <tt>gitcvs.enabled</tt> config option
unless <em>--export-all</em> was given, too.
</p>
</dd>
-</dl>
+</dl></div>
</div>
-<h2>DESCRIPTION</h2>
+<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
-<p>This application is a CVS emulation layer for git.</p>
-<p>It is highly functional. However, not all methods are implemented,
+<div class="para"><p>This application is a CVS emulation layer for git.</p></div>
+<div class="para"><p>It is highly functional. However, not all methods are implemented,
and for those methods that are implemented,
-not all switches are implemented.</p>
-<p>Testing has been done using both the CLI CVS client, and the Eclipse CVS
-plugin. Most functionality works fine with both of these clients.</p>
+not all switches are implemented.</p></div>
+<div class="para"><p>Testing has been done using both the CLI CVS client, and the Eclipse CVS
+plugin. Most functionality works fine with both of these clients.</p></div>
</div>
-<h2>LIMITATIONS</h2>
+<h2 id="_limitations">LIMITATIONS</h2>
<div class="sectionbody">
-<p>Currently cvsserver works over SSH connections for read/write clients, and
-over pserver for anonymous CVS access.</p>
-<p>CVS clients cannot tag, branch or perform GIT merges.</p>
-<p><tt>git-cvsserver</tt> maps GIT branches to CVS modules. This is very different
+<div class="para"><p>Currently cvsserver works over SSH connections for read/write clients, and
+over pserver for anonymous CVS access.</p></div>
+<div class="para"><p>CVS clients cannot tag, branch or perform GIT merges.</p></div>
+<div class="para"><p><em>git-cvsserver</em> maps GIT branches to CVS modules. This is very different
from what most CVS users would expect since in CVS modules usually represent
-one or more directories.</p>
+one or more directories.</p></div>
</div>
-<h2>INSTALLATION</h2>
+<h2 id="_installation">INSTALLATION</h2>
<div class="sectionbody">
-<ol>
+<div class="olist"><ol>
<li>
<p>
If you are going to offer anonymous CVS access via pserver, add a line in
@@ -383,29 +431,29 @@ If you are going to offer anonymous CVS access via pserver, add a line in
<pre><tt> cvspserver stream tcp nowait nobody git-cvsserver pserver
</tt></pre>
</div></div>
-<p>Note: Some inetd servers let you specify the name of the executable
+<div class="para"><p>Note: Some inetd servers let you specify the name of the executable
independently of the value of argv[0] (i.e. the name the program assumes
it was executed with). In this case the correct line in /etc/inetd.conf
-looks like</p>
+looks like</p></div>
<div class="listingblock">
<div class="content">
<pre><tt> cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver
</tt></pre>
</div></div>
-<p>No special setup is needed for SSH access, other than having GIT tools
+<div class="para"><p>No special setup is needed for SSH access, other than having GIT tools
in the PATH. If you have clients that do not accept the CVS_SERVER
-environment variable, you can rename <tt>git-cvsserver</tt> to <tt>cvs</tt>.</p>
-<p>Note: Newer CVS versions (&gt;= 1.12.11) also support specifying
-CVS_SERVER directly in CVSROOT like</p>
+environment variable, you can rename <em>git-cvsserver</em> to <tt>cvs</tt>.</p></div>
+<div class="para"><p>Note: Newer CVS versions (&gt;= 1.12.11) also support specifying
+CVS_SERVER directly in CVSROOT like</p></div>
<div class="listingblock">
<div class="content">
<pre><tt>cvs -d ":ext;CVS_SERVER=git-cvsserver:user@server/path/repo.git" co &lt;HEAD_name&gt;</tt></pre>
</div></div>
-<p>This has the advantage that it will be saved in your <em>CVS/Root</em> files and
+<div class="para"><p>This has the advantage that it will be saved in your <em>CVS/Root</em> files and
you don't need to worry about always setting the correct environment
-variable. SSH users restricted to <tt>git-shell</tt> don't need to override the default
-with CVS_SERVER (and shouldn't) as <tt>git-shell</tt> understands <tt>cvs</tt> to mean
-<tt>git-cvsserver</tt> and pretends that the other end runs the real <tt>cvs</tt> better.</p>
+variable. SSH users restricted to <em>git-shell</em> don't need to override the default
+with CVS_SERVER (and shouldn't) as <em>git-shell</em> understands <tt>cvs</tt> to mean
+<em>git-cvsserver</em> and pretends that the other end runs the real <em>cvs</em> better.</p></div>
</li>
<li>
<p>
@@ -420,14 +468,16 @@ For each repo that you want accessible from CVS you need to edit config in
logfile=/path/to/logfile
</tt></pre>
</div></div>
-<p>Note: you need to ensure each user that is going to invoke <tt>git-cvsserver</tt> has
+<div class="para"><p>Note: you need to ensure each user that is going to invoke <em>git-cvsserver</em> has
write access to the log file and to the database (see
<a href="#dbbackend">Database Backend</a>. If you want to offer write access over
-SSH, the users of course also need write access to the git repository itself.</p>
-<p><a id="configaccessmethod"></a>All configuration variables can also be overridden for a specific method of
+SSH, the users of course also need write access to the git repository itself.</p></div>
+<div class="para"><p>You also need to ensure that each repository is "bare" (without a git index
+file) for <tt>cvs commit</tt> to work. See <a href="gitcvs-migration.html">gitcvs-migration(7)</a>.</p></div>
+<div class="para" id="configaccessmethod"><p>All configuration variables can also be overridden for a specific method of
access. Valid method names are "ext" (for SSH access) and "pserver". The
following example configuration would disable pserver access while still
-allowing access over SSH.</p>
+allowing access over SSH.</p></div>
<div class="listingblock">
<div class="content">
<pre><tt> [gitcvs]
@@ -443,7 +493,7 @@ If you didn't specify the CVSROOT/CVS_SERVER directly in the checkout command,
automatically saving it in your <em>CVS/Root</em> files, then you need to set them
explicitly in your environment. CVSROOT should be set as per normal, but the
directory should point at the appropriate git repo. As above, for SSH clients
- _not_ restricted to <tt>git-shell</tt>, CVS_SERVER should be set to <tt>git-cvsserver</tt>.
+ <em>not</em> restricted to <em>git-shell</em>, CVS_SERVER should be set to <em>git-cvsserver</em>.
</p>
<div class="listingblock">
<div class="content">
@@ -473,36 +523,36 @@ Clients should now be able to check out the project. Use the CVS <em>module</em>
<pre><tt> cvs co -d project-master master</tt></pre>
</div></div>
</li>
-</ol>
+</ol></div>
</div>
-<h2><a id="dbbackend"></a>Database Backend</h2>
+<h2 id="dbbackend">Database Backend</h2>
<div class="sectionbody">
-<p><tt>git-cvsserver</tt> uses one database per git head (i.e. CVS module) to
+<div class="para"><p><em>git-cvsserver</em> uses one database per git head (i.e. CVS module) to
store information about the repository for faster access. The
database doesn't contain any persistent data and can be completely
regenerated from the git repository at any time. The database
-needs to be updated (i.e. written to) after every commit.</p>
-<p>If the commit is done directly by using <tt>git</tt> (as opposed to
-using <tt>git-cvsserver</tt>) the update will need to happen on the
-next repository access by <tt>git-cvsserver</tt>, independent of
-access method and requested operation.</p>
-<p>That means that even if you offer only read access (e.g. by using
-the pserver method), <tt>git-cvsserver</tt> should have write access to
+needs to be updated (i.e. written to) after every commit.</p></div>
+<div class="para"><p>If the commit is done directly by using <tt>git</tt> (as opposed to
+using <em>git-cvsserver</em>) the update will need to happen on the
+next repository access by <em>git-cvsserver</em>, independent of
+access method and requested operation.</p></div>
+<div class="para"><p>That means that even if you offer only read access (e.g. by using
+the pserver method), <em>git-cvsserver</em> should have write access to
the database to work reliably (otherwise you need to make sure
-that the database is up-to-date any time <tt>git-cvsserver</tt> is executed).</p>
-<p>By default it uses SQLite databases in the git directory, named
+that the database is up-to-date any time <em>git-cvsserver</em> is executed).</p></div>
+<div class="para"><p>By default it uses SQLite databases in the git directory, named
<tt>gitcvs.&lt;module_name&gt;.sqlite</tt>. Note that the SQLite backend creates
temporary files in the same directory as the database file on
write so it might not be enough to grant the users using
-<tt>git-cvsserver</tt> write access to the database file without granting
-them write access to the directory, too.</p>
-<p>You can configure the database backend with the following
-configuration variables:</p>
-<h3>Configuring database backend</h3>
-<p><tt>git-cvsserver</tt> uses the Perl DBI module. Please also read
+<em>git-cvsserver</em> write access to the database file without granting
+them write access to the directory, too.</p></div>
+<div class="para"><p>You can configure the database backend with the following
+configuration variables:</p></div>
+<h3 id="_configuring_database_backend">Configuring database backend</h3><div style="clear:left"></div>
+<div class="para"><p><em>git-cvsserver</em> uses the Perl DBI module. Please also read
its documentation if changing these variables, especially
-about <tt>DBI-&gt;connect()</tt>.</p>
-<dl>
+about <tt>DBI-&gt;connect()</tt>.</p></div>
+<div class="vlist"><dl>
<dt>
gitcvs.dbname
</dt>
@@ -558,11 +608,11 @@ gitcvs.dbTableNamePrefix
with underscores.
</p>
</dd>
-</dl>
-<p>All variables can also be set per access method, see <a href="#configaccessmethod">above</a>.</p>
-<h4>Variable substitution</h4>
-<p>In <tt>dbdriver</tt> and <tt>dbuser</tt> you can use the following variables:</p>
-<dl>
+</dl></div>
+<div class="para"><p>All variables can also be set per access method, see <a href="#configaccessmethod">above</a>.</p></div>
+<h4 id="_variable_substitution">Variable substitution</h4>
+<div class="para"><p>In <tt>dbdriver</tt> and <tt>dbuser</tt> you can use the following variables:</p></div>
+<div class="vlist"><dl>
<dt>
%G
</dt>
@@ -603,17 +653,17 @@ gitcvs.dbTableNamePrefix
</dt>
<dd>
<p>
- Name of the user running <tt>git-cvsserver</tt>.
+ Name of the user running <em>git-cvsserver</em>.
If no name can be determined, the
numeric uid is used.
</p>
</dd>
-</dl>
+</dl></div>
</div>
-<h2>Eclipse CVS Client Notes</h2>
+<h2 id="_eclipse_cvs_client_notes">Eclipse CVS Client Notes</h2>
<div class="sectionbody">
-<p>To get a checkout with the Eclipse CVS client:</p>
-<ol>
+<div class="para"><p>To get a checkout with the Eclipse CVS client:</p></div>
+<div class="olist"><ol>
<li>
<p>
Select "Create a new project -&gt; From CVS checkout"
@@ -638,20 +688,20 @@ Pick <em>HEAD</em> when it asks what branch/tag to check out. Untick the
"launch commit wizard" to avoid committing the .project file.
</p>
</li>
-</ol>
-<p>Protocol notes: If you are using anonymous access via pserver, just select that.
+</ol></div>
+<div class="para"><p>Protocol notes: If you are using anonymous access via pserver, just select that.
Those using SSH access should choose the <em>ext</em> protocol, and configure <em>ext</em>
access on the Preferences-&gt;Team-&gt;CVS-&gt;ExtConnection pane. Set CVS_SERVER to
-<tt>git-cvsserver</tt>. Note that password support is not good when using <em>ext</em>,
-you will definitely want to have SSH keys setup.</p>
-<p>Alternatively, you can just use the non-standard extssh protocol that Eclipse
+<em>git-cvsserver</em>. Note that password support is not good when using <em>ext</em>,
+you will definitely want to have SSH keys setup.</p></div>
+<div class="para"><p>Alternatively, you can just use the non-standard extssh protocol that Eclipse
offer. In that case CVS_SERVER is ignored, and you will have to replace
-the cvs utility on the server with <tt>git-cvsserver</tt> or manipulate your <tt>.bashrc</tt>
-so that calling <em>cvs</em> effectively calls <tt>git-cvsserver</tt>.</p>
+the cvs utility on the server with <em>git-cvsserver</em> or manipulate your <tt>.bashrc</tt>
+so that calling <em>cvs</em> effectively calls <em>git-cvsserver</em>.</p></div>
</div>
-<h2>Clients known to work</h2>
+<h2 id="_clients_known_to_work">Clients known to work</h2>
<div class="sectionbody">
-<ul>
+<div class="ilist"><ul>
<li>
<p>
CVS 1.12.9 on Debian
@@ -672,46 +722,46 @@ Eclipse 3.0, 3.1.2 on MacOSX (see Eclipse CVS Client Notes)
TortoiseCVS
</p>
</li>
-</ul>
+</ul></div>
</div>
-<h2>Operations supported</h2>
+<h2 id="_operations_supported">Operations supported</h2>
<div class="sectionbody">
-<p>All the operations required for normal use are supported, including
+<div class="para"><p>All the operations required for normal use are supported, including
checkout, diff, status, update, log, add, remove, commit.
Legacy monitoring operations are not supported (edit, watch and related).
-Exports and tagging (tags and branches) are not supported at this stage.</p>
-<h3>CRLF Line Ending Conversions</h3>
-<p>By default the server leaves the <em>-k</em> mode blank for all files,
+Exports and tagging (tags and branches) are not supported at this stage.</p></div>
+<h3 id="_crlf_line_ending_conversions">CRLF Line Ending Conversions</h3><div style="clear:left"></div>
+<div class="para"><p>By default the server leaves the <em>-k</em> mode blank for all files,
which causes the cvs client to treat them as a text files, subject
-to crlf conversion on some platforms.</p>
-<p>You can make the server use <tt>crlf</tt> attributes to set the <em>-k</em> modes
+to crlf conversion on some platforms.</p></div>
+<div class="para"><p>You can make the server use <tt>crlf</tt> attributes to set the <em>-k</em> modes
for files by setting the <tt>gitcvs.usecrlfattr</tt> config variable.
In this case, if <tt>crlf</tt> is explicitly unset (<em>-crlf</em>), then the
server will set <em>-kb</em> mode for binary files. If <tt>crlf</tt> is set,
then the <em>-k</em> mode will explicitly be left blank. See
also <a href="gitattributes.html">gitattributes(5)</a> for more information about the <tt>crlf</tt>
-attribute.</p>
-<p>Alternatively, if <tt>gitcvs.usecrlfattr</tt> config is not enabled
+attribute.</p></div>
+<div class="para"><p>Alternatively, if <tt>gitcvs.usecrlfattr</tt> config is not enabled
or if the <tt>crlf</tt> attribute is unspecified for a filename, then
the server uses the <tt>gitcvs.allbinary</tt> config for the default setting.
If <tt>gitcvs.allbinary</tt> is set, then file not otherwise
specified will default to <em>-kb</em> mode. Otherwise the <em>-k</em> mode
is left blank. But if <tt>gitcvs.allbinary</tt> is set to "guess", then
the correct <em>-k</em> mode will be guessed based on the contents of
-the file.</p>
-<p>For best consistency with <tt>cvs</tt>, it is probably best to override the
+the file.</p></div>
+<div class="para"><p>For best consistency with <em>cvs</em>, it is probably best to override the
defaults by setting <tt>gitcvs.usecrlfattr</tt> to true,
-and <tt>gitcvs.allbinary</tt> to "guess".</p>
+and <tt>gitcvs.allbinary</tt> to "guess".</p></div>
</div>
-<h2>Dependencies</h2>
+<h2 id="_dependencies">Dependencies</h2>
<div class="sectionbody">
-<p><tt>git-cvsserver</tt> depends on DBD::SQLite.</p>
+<div class="para"><p><em>git-cvsserver</em> depends on DBD::SQLite.</p></div>
</div>
-<h2>Copyright and Authors</h2>
+<h2 id="_copyright_and_authors">Copyright and Authors</h2>
<div class="sectionbody">
-<p>This program is copyright The Open University UK - 2006.</p>
-<p>Authors:</p>
-<ul>
+<div class="para"><p>This program is copyright The Open University UK - 2006.</p></div>
+<div class="para"><p>Authors:</p></div>
+<div class="ilist"><ul>
<li>
<p>
Martyn Smith &lt;martyn@catalyst.net.nz&gt;
@@ -722,20 +772,20 @@ Martyn Smith &lt;martyn@catalyst.net.nz&gt;
Martin Langhoff &lt;martin@catalyst.net.nz&gt;
</p>
</li>
-</ul>
-<p>with ideas and patches from participants of the git-list &lt;git@vger.kernel.org&gt;.</p>
+</ul></div>
+<div class="para"><p>with ideas and patches from participants of the git-list &lt;git@vger.kernel.org&gt;.</p></div>
</div>
-<h2>Documentation</h2>
+<h2 id="_documentation">Documentation</h2>
<div class="sectionbody">
-<p>Documentation by Martyn Smith &lt;martyn@catalyst.net.nz&gt;, Martin Langhoff &lt;martin@catalyst.net.nz&gt;, and Matthias Urlichs &lt;smurf@smurf.noris.de&gt;.</p>
+<div class="para"><p>Documentation by Martyn Smith &lt;martyn@catalyst.net.nz&gt;, Martin Langhoff &lt;martin@catalyst.net.nz&gt;, and Matthias Urlichs &lt;smurf@smurf.noris.de&gt;.</p></div>
</div>
-<h2>GIT</h2>
+<h2 id="_git">GIT</h2>
<div class="sectionbody">
-<p>Part of the <a href="git.html">git(1)</a> suite</p>
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
</div>
<div id="footer">
<div id="footer-text">
-Last updated 02-Jul-2008 03:01:39 UTC
+Last updated 2008-07-06 05:16:41 UTC
</div>
</div>
</body>