Update the CVS Operations section for the split repository situation.

This commit is contained in:
Ceri Davies 2003-07-13 16:04:35 +00:00
parent af00da4546
commit 97b2f24f05
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=17536

View file

@ -63,7 +63,7 @@
<row>
<entry><emphasis>Main CVSROOT</emphasis></entry>
<entry>
<hostid role="fqdn">ncvs.FreeBSD.org</hostid><literal>:</literal><filename>/home/ncvs</filename>
<hostid role="fqdn">ncvs.FreeBSD.org</hostid><literal>:</literal><filename>/home/ncvs</filename> (although also see <xref linkend="cvs.operations">).
</entry>
</row>
@ -179,7 +179,7 @@
<para>It is assumed that you are already familiar with the basic operation
of CVS.</para>
<para>The CVS repository is hosted on the repository machines. The &a.cvs;
<para>The &a.cvs;
are the <quote>owners</quote> of the CVS repository and are
responsible for direct modification of it for the purposes of
cleanup or fixing some grievous abuse of CVS by a committer.
@ -188,15 +188,74 @@
operation, mail the &a.cvs; (or call one of them) and report the problem to
one of them. The only ones able to directly fiddle
the repository bits on the repository hosts are the repomeisters.
There are no login shells available on
<hostid role="fqdn">ncvs.FreeBSD.org</hostid>, except
To enforce this, there are no login shells available on
the repository machines, except
to the repomeisters.</para>
<para>The CVS tree is currently split into four distinct repositories,
namely <literal>doc</literal>, <literal>ports</literal>,
<literal>projects</literal> and <literal>src</literal>. These are
combined under a single <literal>CVSROOT</literal> when distributed
via <application>CVSup</application> for the convenience of our users.</para>
<note><para>Note that the <literal>www</literal> module containing sources
for the <ulink url="http://www.FreeBSD.org">FreeBSD website</ulink> is
contained within the <literal>doc</literal> repository.</para></note>
<para>The CVS repositories are hosted on the repository machines.
Currently, each of the repositories above reside on the same physical
machine, <hostid role="hostname">ncvs.FreeBSD.org</hostid>, but to allow for
the possibility of placing each on a separate machine in the future,
there is a separate hostname for each that committers should use.
Additionally, each repository is stored in a separate directory. The
following table summarises the situation.</para>
<table frame="none" id="cvs-repositories-and-hosts">
<title>&os; CVS Repositories, Hosts and Directories</title>
<tgroup cols="3">
<thead>
<row>
<entry>Repository</entry>
<entry>Host</entry>
<entry>Directory</entry>
</row>
</thead>
<tbody>
<row>
<entry>doc</entry>
<entry>dcvs.FreeBSD.org</entry>
<entry>/home/dcvs</entry>
</row>
<row>
<entry>ports</entry>
<entry>pcvs.FreeBSD.org</entry>
<entry>/home/pcvs</entry>
</row>
<row>
<entry>projects</entry>
<entry>projcvs.FreeBSD.org</entry>
<entry>/home/projcvs</entry>
</row>
<row>
<entry>src</entry>
<entry>ncvs.FreeBSD.org</entry>
<entry>/home/ncvs</entry>
</row>
</tbody>
</tgroup>
</table>
<para>CVS operations are done remotely by setting the
<envar>CVSROOT</envar> environment variable to
<hostid role="fqdn">ncvs.FreeBSD.org</hostid><literal>:</literal><filename>/home/ncvs</filename>
and the <envar>CVS_RSH</envar> variable to
<command>ssh</command>
<envar>CVSROOT</envar> environment variable to the appropriate host
and top-level directory (for example,
<hostid role="fqdn">ncvs.FreeBSD.org</hostid><literal>:</literal><filename>/home/ncvs</filename>),
the <envar>CVS_RSH</envar> variable to
<command>ssh</command>,
and then doing the appropriate
check-out/check-in operations. If you wish to add
something which is wholly new (like contrib-ified
@ -221,12 +280,19 @@
charge of <hostid>cvsup-master</hostid>.
</para>
<para>Many committers define an alias <command>fcvs</command>
which aliases to
<quote><command>cvs -d
xxx@ncvs.FreeBSD.org:/home/ncvs</command></quote>
for this purpose. That way they do all CVS operations
locally and use <command>fcvs commit</command> for committing
<para>Many committers define aliases
which expand to the correct <application>cvs</application> invocation
for the appropriate repository. For example, a &man.tcsh.1; user may
add the following to their <filename>.cshrc</filename> for this
purpose:</para>
<programlisting>alias dcvs env CVS_RSH=ssh cvs -d <replaceable>user</replaceable>@dcvs.freebsd.org:/home/dcvs
alias pcvs env CVS_RSH=ssh cvs -d <replaceable>user</replaceable>@pcvs.freebsd.org:/home/pcvs
alias projcvs env CVS_RSH=ssh cvs -d <replaceable>user</replaceable>@projcvs.freebsd.org:/home/projcvs
alias scvs env CVS_RSH=ssh cvs -d <replaceable>user</replaceable>@ncvs.freebsd.org:/home/ncvs</programlisting>
<para>This way they can do all CVS operations
locally and use <command><replaceable>X</replaceable>cvs commit</command> for committing
to the official CVS tree.</para>
</note>
@ -607,11 +673,11 @@
</itemizedlist>
<para>You will almost certainly get a conflict because
of the <literal>$Id: article.sgml,v 1.168 2003-07-12 01:04:23 peter Exp $</literal> (or in FreeBSD's case,
of the <literal>$Id: article.sgml,v 1.169 2003-07-13 16:04:35 ceri Exp $</literal> (or in FreeBSD's case,
<literal>$<!-- stop expansion -->FreeBSD<!-- stop expansion -->$</literal>)
lines, so you will have to edit the file to resolve the conflict
(remove the marker lines and the second <literal>$Id: article.sgml,v 1.168 2003-07-12 01:04:23 peter Exp $</literal> line,
leaving the original <literal>$Id: article.sgml,v 1.168 2003-07-12 01:04:23 peter Exp $</literal> line intact).</para>
(remove the marker lines and the second <literal>$Id: article.sgml,v 1.169 2003-07-13 16:04:35 ceri Exp $</literal> line,
leaving the original <literal>$Id: article.sgml,v 1.169 2003-07-13 16:04:35 ceri Exp $</literal> line intact).</para>
</listitem>
<listitem>