ncvs.FreeBSD.org is now the main repository host.

Describe how to commit on ncvs.FreeBSD.org using remote CVS.

Add a note to NOT use the main repository host as your personal
cvs server, as inspired by peter's mail to developers@ a while back.
Refer to the cvsup distribution method and cvsup-master instead and
give an example of an "fcvs" alias, as suggested by many committers.

Reword or remove various paragraphs about not modifiying the repository
yourself, which is no longer possible, since only repomeisters have
access to ncvs.FreeBSD.org.

Remove the paragraph about CVSUMASK, which no longer applies.
This commit is contained in:
Alexander Langer 2002-10-24 18:54:17 +00:00
parent 9fb48ee2dd
commit d558fc6c47
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=14755

View file

@ -50,17 +50,19 @@
<tbody>
<row>
<entry><emphasis>Main Repository Host</emphasis></entry>
<entry><hostid>freefall.FreeBSD.org</hostid></entry>
<entry><hostid>ncvs.FreeBSD.org</hostid></entry>
</row>
<row>
<entry><emphasis>Login Methods</emphasis></entry>
<entry>&man.ssh.1;</entry>
<entry>&man.ssh.1;, protocol 2 only</entry>
</row>
<row>
<entry><emphasis>Main CVSROOT</emphasis></entry>
<entry><filename>/home/ncvs</filename></entry>
<entry>
<hostid role="fqdn">ncvs.FreeBSD.org</hostid><literal>:</literal><filename>/home/ncvs</filename>
</entry>
</row>
<row>
@ -83,8 +85,9 @@
</informaltable>
<para>It is required that you use &man.ssh.1; or &man.telnet.1;
with Kerberos 5 to connect to the repository hosts. These are
generally more secure than plain &man.telnet.1; or
with Kerberos 5 to connect to the project hosts and only
&man.ssh.1;, protocol 2 is allowed connecting to the repository
host. These are generally more secure than plain &man.telnet.1; or
&man.rlogin.1; since credential negotiation will always be
encrypted. All traffic is encrypted by default with &man.ssh.1;.
With utilities like &man.ssh-agent.1; and &man.scp.1; also
@ -160,47 +163,57 @@
<para>It is assumed that you are already familiar with the basic operation
of CVS.</para>
<para>The &a.cvs;
<para>The CVS repository is hosted on the repository machines. The &a.cvs;
are the <quote>owners</quote> of the CVS repository and are
responsible for any and <emphasis>all</emphasis> direct
modification of it for the purposes of cleanup or fixing some
grievous abuse of CVS by a committer. No one else should
attempt to touch the repository directly. Should you cause some
repository accident, say a bad <command>cvs import</command> or <command>cvs tag</command> operation, do
<emphasis role="bold">not</emphasis> attempt to fix it yourself!
Mail the &a.cvs; (or call one of them) and report the problem to
one of them instead. The only ones allowed to directly fiddle
the repository bits are the repomeisters.</para>
responsible for direct modification of it for the purposes of
cleanup or fixing some grievous abuse of CVS by a committer.
Should you cause some
repository accident, say a bad <command>cvs import</command> or <command>cvs tag</command> 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 on
<hostid role="fqdn">ncvs.FreeBSD.org</hostid> installed, except
for the repomeisters.</para>
<para>CVS operations are usually done by logging into
<hostid>freefall</hostid>, making sure the
<envar>CVSROOT</envar> environment variable is set to
<filename>/home/ncvs</filename>, and then doing the appropriate
<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>
and then doing the appropriate
check-out/check-in operations. If you wish to add
something which is wholly new (like contrib-ified
sources, etc), <command>cvs import</command> should be used.
Refer to the &man.cvs.1; manual page for usage.</para>
<para>Note that when you use CVS on <hostid>freefall</hostid>, you
should set your <literal>umask</literal> to <literal>2</literal>,
as well as setting the <envar>CVSUMASK</envar> environment
variable to <literal>2</literal>. This ensures that any new
files created by <command>cvs add</command> will have the correct
permissions. If you add a file or directory and discover that the
file in the repository has incorrect permissions (specifically,
all files in the repository should be group writable by group
<literal>ncvs</literal>), contact one of the repository meisters
as described below.</para>
<note>
<para>Please do <emphasis>not</emphasis> use
<command>cvs checkout</command> or
<command>update</command> with the official repository machine set
as the CVS Root for keeping your source tree up to date.
Remote CVS is not optimized for network distribution
and requires a big work/administrative overhead on the server side.
Please use our advanced <command>cvsup</command> distribution
method for obtaining the repository bits, and only do the actual
<command>commit</command> operation on the repository host.
We provide an extensive cvsup replication network for this purpose,
as well as give access to <hostid>cvsup-master</hostid> if you
really need to stay current to the latest changes.
<hostid>cvsup-master</hostid> has got the horsepower to deal with
this, the repository master server does not. &a.jdp; is in
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
to the official CVS tree.</para>
</note>
<para>If you are familiar with remote CVS and consider yourself
pretty studly with CVS in general, you can also do CVS
operations directly from your own machine and local working
sources. Just remember to set <envar>CVS_RSH</envar> to
<literal>ssh</literal> so that you are using a relatively
secure and reliable transport. If you have no idea what any of
the above even means, on the other hand, then please stick with
logging into <hostid>freefall</hostid> and applying your diffs
with &man.patch.1;.</para>
<para>If you need to use CVS <command>add</command> and
<command>delete</command> operations in a manner that is
@ -579,11 +592,11 @@
</itemizedlist>
<para>You will almost certainly get a conflict because
of the <literal>$Id: article.sgml,v 1.139 2002-10-14 23:18:35 jdp Exp $</literal> (or in FreeBSD's case,
of the <literal>$Id: article.sgml,v 1.140 2002-10-24 18:54:17 alex 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.139 2002-10-14 23:18:35 jdp Exp $</literal> line, leaving the original
<literal>$Id: article.sgml,v 1.139 2002-10-14 23:18:35 jdp Exp $</literal> line intact).</para>
the second <literal>$Id: article.sgml,v 1.140 2002-10-24 18:54:17 alex Exp $</literal> line, leaving the original
<literal>$Id: article.sgml,v 1.140 2002-10-24 18:54:17 alex Exp $</literal> line intact).</para>
</listitem>
<listitem>