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> <tbody>
<row> <row>
<entry><emphasis>Main Repository Host</emphasis></entry> <entry><emphasis>Main Repository Host</emphasis></entry>
<entry><hostid>freefall.FreeBSD.org</hostid></entry> <entry><hostid>ncvs.FreeBSD.org</hostid></entry>
</row> </row>
<row> <row>
<entry><emphasis>Login Methods</emphasis></entry> <entry><emphasis>Login Methods</emphasis></entry>
<entry>&man.ssh.1;</entry> <entry>&man.ssh.1;, protocol 2 only</entry>
</row> </row>
<row> <row>
<entry><emphasis>Main CVSROOT</emphasis></entry> <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>
<row> <row>
@ -83,8 +85,9 @@
</informaltable> </informaltable>
<para>It is required that you use &man.ssh.1; or &man.telnet.1; <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 with Kerberos 5 to connect to the project hosts and only
generally more secure than plain &man.telnet.1; or &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 &man.rlogin.1; since credential negotiation will always be
encrypted. All traffic is encrypted by default with &man.ssh.1;. encrypted. All traffic is encrypted by default with &man.ssh.1;.
With utilities like &man.ssh-agent.1; and &man.scp.1; also 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 <para>It is assumed that you are already familiar with the basic operation
of CVS.</para> 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 are the <quote>owners</quote> of the CVS repository and are
responsible for any and <emphasis>all</emphasis> direct responsible for direct modification of it for the purposes of
modification of it for the purposes of cleanup or fixing some cleanup or fixing some grievous abuse of CVS by a committer.
grievous abuse of CVS by a committer. No one else should Should you cause some
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,
repository accident, say a bad <command>cvs import</command> or <command>cvs tag</command> operation, do mail the &a.cvs; (or call one of them) and report the problem to
<emphasis role="bold">not</emphasis> attempt to fix it yourself! one of them. The only ones able to directly fiddle
Mail the &a.cvs; (or call one of them) and report the problem to the repository bits on the repository hosts are the repomeisters.
one of them instead. The only ones allowed to directly fiddle There are no login shells on
the repository bits are the repomeisters.</para> <hostid role="fqdn">ncvs.FreeBSD.org</hostid> installed, except
for the repomeisters.</para>
<para>CVS operations are usually done by logging into <para>CVS operations are done remotely by setting the
<hostid>freefall</hostid>, making sure the <envar>CVSROOT</envar> environment variable to
<envar>CVSROOT</envar> environment variable is set to <hostid role="fqdn">ncvs.FreeBSD.org</hostid><literal>:</literal><filename>/home/ncvs</filename>
<filename>/home/ncvs</filename>, and then doing the appropriate 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 check-out/check-in operations. If you wish to add
something which is wholly new (like contrib-ified something which is wholly new (like contrib-ified
sources, etc), <command>cvs import</command> should be used. sources, etc), <command>cvs import</command> should be used.
Refer to the &man.cvs.1; manual page for usage.</para> Refer to the &man.cvs.1; manual page for usage.</para>
<para>Note that when you use CVS on <hostid>freefall</hostid>, you <note>
should set your <literal>umask</literal> to <literal>2</literal>, <para>Please do <emphasis>not</emphasis> use
as well as setting the <envar>CVSUMASK</envar> environment <command>cvs checkout</command> or
variable to <literal>2</literal>. This ensures that any new <command>update</command> with the official repository machine set
files created by <command>cvs add</command> will have the correct as the CVS Root for keeping your source tree up to date.
permissions. If you add a file or directory and discover that the Remote CVS is not optimized for network distribution
file in the repository has incorrect permissions (specifically, and requires a big work/administrative overhead on the server side.
all files in the repository should be group writable by group Please use our advanced <command>cvsup</command> distribution
<literal>ncvs</literal>), contact one of the repository meisters method for obtaining the repository bits, and only do the actual
as described below.</para> <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 <para>If you need to use CVS <command>add</command> and
<command>delete</command> operations in a manner that is <command>delete</command> operations in a manner that is
@ -579,11 +592,11 @@
</itemizedlist> </itemizedlist>
<para>You will almost certainly get a conflict because <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 <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 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 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.139 2002-10-14 23:18:35 jdp Exp $</literal> line intact).</para> <literal>$Id: article.sgml,v 1.140 2002-10-24 18:54:17 alex Exp $</literal> line intact).</para>
</listitem> </listitem>
<listitem> <listitem>