- Add information on how to update the source code using Subversion, and
therefore deprecate CVS and CVSup as ways of updating. Reviewed by: gavin, brd, eadler Approved by: gjb
This commit is contained in:
parent
bab268db4b
commit
1af7bc46fb
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=40050
2 changed files with 315 additions and 368 deletions
en_US.ISO8859-1/books/handbook
|
@ -70,6 +70,7 @@
|
|||
<listitem>
|
||||
<para>How to keep your system up to date with
|
||||
<application>freebsd-update</application>,
|
||||
<application>Subversion</application>,
|
||||
<application>CVSup</application>,
|
||||
<application>CVS</application>, or
|
||||
<application>CTM</application>.</para>
|
||||
|
@ -82,7 +83,7 @@
|
|||
|
||||
<listitem>
|
||||
<para>How to keep your documentation up to date with
|
||||
<application>CVSup</application> or documentation
|
||||
<application>Subversion</application> or documentation
|
||||
ports<!--, and <application>Docsnap</application>-->.</para>
|
||||
</listitem>
|
||||
|
||||
|
@ -112,15 +113,10 @@
|
|||
</itemizedlist>
|
||||
|
||||
<note>
|
||||
<para>Throughout this chapter, the <command>cvsup</command>
|
||||
command is used to obtain and update &os; sources. To use it,
|
||||
you will need to install the port or the package for
|
||||
<filename role="package">net/cvsup</filename> (if you do not
|
||||
want to install the graphical <command>cvsup</command> client,
|
||||
you can just install the port
|
||||
<filename>net/cvsup-without-gui</filename>). You may wish to
|
||||
substitute this with &man.csup.1;, which is part of the base
|
||||
system.</para>
|
||||
<para>Throughout this chapter, the <command>svn</command> command
|
||||
is used to obtain and update &os; sources. To use it, you will
|
||||
need to install the port or the package for <filename
|
||||
role="package">devel/subversion</filename>.</para>
|
||||
</note>
|
||||
</sect1>
|
||||
|
||||
|
@ -1405,9 +1401,12 @@ Fetching 133 new ports or files... done.</screen>
|
|||
<listitem>
|
||||
<para>Grab the sources from a &os;
|
||||
<link linkend="mirrors">mirror site</link>. You can do
|
||||
this in one of two ways:</para>
|
||||
this in one of three ways:</para>
|
||||
|
||||
<orderedlist>
|
||||
<indexterm>
|
||||
<primary><command>svn</command></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary><command>cvsup</command></primary>
|
||||
</indexterm>
|
||||
|
@ -1421,22 +1420,34 @@ Fetching 133 new ports or files... done.</screen>
|
|||
</secondary>
|
||||
</indexterm>
|
||||
|
||||
<listitem>
|
||||
<para>Use the <link linkend="svn">svn</link> program to
|
||||
check out the desired development or release branch.
|
||||
This is the recommended method, providing access to
|
||||
&os; development as it occurs. The preferred URL
|
||||
prefix for <application>Subversion</application>
|
||||
checkout of the -CURRENT base system is
|
||||
<literal>http://svn.freebsd.org/base/head/</literal>;
|
||||
because of the size of the repository, it is
|
||||
recommended that only desired subtrees be checked out.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Use the <link linkend="cvsup">cvsup</link>
|
||||
program with the <filename>supfile</filename> named
|
||||
<filename>standard-supfile</filename> available from
|
||||
<filename>/usr/share/examples/cvsup</filename>.
|
||||
This is the most recommended method, since it allows
|
||||
you to grab the entire collection once and then only
|
||||
what has changed from then on. Many people run
|
||||
<command>cvsup</command> from
|
||||
<command>cron</command> and keep their sources
|
||||
up-to-date automatically. You have to customize the
|
||||
sample <filename>supfile</filename> above, and
|
||||
configure
|
||||
You have to customize the sample
|
||||
<filename>supfile</filename> above, and configure
|
||||
<link linkend="cvsup">cvsup</link> for your
|
||||
environment.</para>
|
||||
|
||||
<warning>
|
||||
<para><command>cvsup</command> has been deprecated by
|
||||
the Project, and is not recommended.</para>
|
||||
</warning>
|
||||
|
||||
<note>
|
||||
<para>The sample
|
||||
<filename>standard-supfile</filename> is intended
|
||||
|
@ -1473,9 +1484,8 @@ Fetching 133 new ports or files... done.</screen>
|
|||
which again increases the chance of it not working
|
||||
for fairly long periods of time. We recommend using
|
||||
<application><link
|
||||
linkend="cvsup">CVSup</link></application> for
|
||||
anybody with a 9600 bps modem or faster
|
||||
connection.</para>
|
||||
linkend="svn">Subversion</link></application> for
|
||||
any system with Internet connectivity.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
|
@ -1599,8 +1609,8 @@ Fetching 133 new ports or files... done.</screen>
|
|||
|
||||
<para>Join the relevant <application>SVN</application>
|
||||
list for the branch you are tracking. For example, if
|
||||
you are tracking the 7-STABLE branch, join the
|
||||
&a.svn-src-stable-7.name; list. This will allow you to
|
||||
you are tracking the 9-STABLE branch, join the
|
||||
&a.svn-src-stable-9.name; list. This will allow you to
|
||||
view the commit log entry for each change as it is made,
|
||||
along with any pertinent information on possible
|
||||
side-effects.</para>
|
||||
|
@ -1629,9 +1639,12 @@ Fetching 133 new ports or files... done.</screen>
|
|||
&os; and wish to upgrade via sources then you can easily
|
||||
do so from &os;
|
||||
<link linkend="mirrors">mirror site</link>. This can be
|
||||
done in one of two ways:</para>
|
||||
done in one of three ways:</para>
|
||||
|
||||
<orderedlist>
|
||||
<indexterm>
|
||||
<primary><command>svn</command></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary><command>cvsup</command></primary>
|
||||
</indexterm>
|
||||
|
@ -1641,24 +1654,42 @@ Fetching 133 new ports or files... done.</screen>
|
|||
<indexterm>
|
||||
<primary>-STABLE</primary>
|
||||
<secondary>syncing with
|
||||
<application>CVSup</application></secondary>
|
||||
<application>Subversion</application></secondary>
|
||||
</indexterm>
|
||||
|
||||
<listitem>
|
||||
<para>Use the <link linkend="svn">svn</link> program to
|
||||
check out the desired development or release branch.
|
||||
This is the recommended method, providing access to
|
||||
&os; development as it occurs. Branch names include
|
||||
<literal>head</literal> for the current development
|
||||
head, and branches identified in <ulink
|
||||
url="&url.base;/releng/"/>, such as
|
||||
<literal>stable/9</literal> or
|
||||
<literal>stable/9.0</literal>. The preferred URL
|
||||
prefix for <application>Subversion</application>
|
||||
checkout of the base system is
|
||||
<literal>http://svn.freebsd.org/base/</literal>;
|
||||
because of the size of the repository, it is
|
||||
recommended that only desired subtrees be checked out.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Use the <link linkend="cvsup">cvsup</link>
|
||||
program with the <filename>supfile</filename> named
|
||||
<filename>stable-supfile</filename> from the
|
||||
directory
|
||||
<filename>/usr/share/examples/cvsup</filename>.
|
||||
This is the most recommended method, since it allows
|
||||
you to grab the entire collection once and then only
|
||||
what has changed from then on. Many people run
|
||||
<command>cvsup</command> from
|
||||
<command>cron</command> to keep their sources
|
||||
up-to-date automatically. You have to customize the
|
||||
You have to customize the
|
||||
sample <filename>supfile</filename> above, and
|
||||
configure <link linkend="cvsup">cvsup</link> for
|
||||
your environment.</para>
|
||||
|
||||
<warning>
|
||||
<para><command>cvsup</command> has been deprecated by
|
||||
the Project, and is not recommended.</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -1713,6 +1744,7 @@ Fetching 133 new ports or files... done.</screen>
|
|||
connection to stay up-to-date with any given area of the &os;
|
||||
project sources, or all areas, depending on what interests you.
|
||||
The primary services we offer are
|
||||
<link linkend="svn">Subversion</link>,
|
||||
<link linkend="anoncvs">Anonymous CVS</link>,
|
||||
<link linkend="cvsup">CVSup</link>, and
|
||||
<link linkend="ctm">CTM</link>.</para>
|
||||
|
@ -1734,25 +1766,25 @@ Fetching 133 new ports or files... done.</screen>
|
|||
<secondary>anonymous</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para><application>Anonymous CVS</application> and
|
||||
<application>CVSup</application> use the
|
||||
<emphasis>pull</emphasis> model of updating sources. In the
|
||||
case of <application>CVSup</application> the user (or a
|
||||
<command>cron</command> script) invokes the
|
||||
<command>cvsup</command> program, and it interacts with a
|
||||
<command>cvsupd</command> server somewhere to bring your files
|
||||
up-to-date. The updates you receive are up-to-the-minute and
|
||||
<para><application>Subversion</application>, <application>Anonymous
|
||||
CVS</application> and <application>CVSup</application> use the
|
||||
<emphasis>pull</emphasis> model of updating sources. For
|
||||
<application>Subversion</application>,
|
||||
the user (or a <command>cron</command> script) invokes the
|
||||
<command>svn</command> program, and it brings files up-to-date.
|
||||
<application>Subversion</application> is the preferred means of
|
||||
updating local source trees.
|
||||
<command>cvsup</command> and <command>cvs</command> work under
|
||||
similar principles, but are now deprecated in favour of Subversion.
|
||||
The updates you receive are up-to-the-minute and
|
||||
you get them when, and only when, you want them. You can easily
|
||||
restrict your updates to the specific files or directories that
|
||||
are of interest to you. Updates are generated on the fly by the
|
||||
server, according to what you have and what you want to have.
|
||||
<application>Anonymous CVS</application> is quite a bit more
|
||||
simplistic than <application>CVSup</application> in that it is
|
||||
just an extension to <application>CVS</application> which allows
|
||||
it to pull changes directly from a remote CVS repository.
|
||||
<application>CVSup</application> can do this far more
|
||||
efficiently, but <application>Anonymous CVS</application> is
|
||||
easier to use.</para>
|
||||
Unless the reason is truly compelling,
|
||||
<application>Subversion</application> should be used in preference
|
||||
to other synchronization mechanisms, which have been deprecated
|
||||
and will be discontinued in the future.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary><application>CTM</application></primary>
|
||||
|
|
|
@ -245,331 +245,18 @@
|
|||
<xref linkend="burncd"/>, burncd.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="mirrors-svn">
|
||||
<title>Subversion Sites</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>svn</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>As of July 2012, &os; uses
|
||||
<ulink url="http://subversion.apache.org/">Subversion</ulink>
|
||||
(<emphasis>svn</emphasis>) as the primary version control system
|
||||
for storing all of &os;'s source code, documentation, and the
|
||||
Ports Collection.</para>
|
||||
|
||||
<note>
|
||||
<para>Subversion is generally a developer tool. Most users
|
||||
should use
|
||||
<link linkend="updating-upgrading-freebsdupdate">FreeBSD
|
||||
Update</link> to update the &os; base system, and
|
||||
<link linkend="updating-upgrading-portsnap">Portsnap</link>
|
||||
to update the &os; Ports Collection.</para>
|
||||
</note>
|
||||
|
||||
<para>The &os; svn mirror network is still in its early days, and
|
||||
will likely change. Do not count on this list of mirrors being
|
||||
static. In particular, the SSL certificates of the servers will
|
||||
likely change at some point.</para>
|
||||
|
||||
<para>In Subversion, URLs are used to designate a repository,
|
||||
taking the form of <literal>protocol://hostname/path</literal>.
|
||||
Mirrors may support different protocols as specified below. The
|
||||
first component of the path is the &os; repository to access.
|
||||
There are three different repositories, <literal>base</literal>
|
||||
for the &os; base system source code, <literal>ports</literal>
|
||||
for the Ports Collection, and <literal>doc</literal> for
|
||||
documentation. For example, the URL
|
||||
<literal>svn://svn0.us-east.FreeBSD.org/ports/head/</literal>
|
||||
specifies the main branch of the ports repository on the
|
||||
<hostid role="fqdn">svn0.us-east.FreeBSD.org</hostid> mirror,
|
||||
using the svn protocol.</para>
|
||||
|
||||
<para>All mirrors carry all repositories.</para>
|
||||
|
||||
<para>The master &os; Subversion server,
|
||||
<hostid role="fqdn">svn.FreeBSD.org</hostid>, is publicly
|
||||
accessible, read-only. That may change in the future, so users
|
||||
are encouraged to use one of the official mirrors. To view the
|
||||
&os; Subversion repositories through a browser, use <ulink
|
||||
url="http://svnweb.FreeBSD.org/">http://svnweb.FreeBSD.org/</ulink>.</para>
|
||||
|
||||
<informaltable>
|
||||
<tgroup cols="4">
|
||||
<colspec colwidth="3*"/>
|
||||
<colspec colwidth="1*"/>
|
||||
<colspec colwidth="2*"/>
|
||||
<colspec colwidth="10*"/>
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Name</entry>
|
||||
|
||||
<entry>Protocols</entry>
|
||||
|
||||
<entry>Location</entry>
|
||||
|
||||
<entry>SSL fingerprint</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><hostid
|
||||
role="fqdn">svn0.us-west.FreeBSD.org</hostid></entry>
|
||||
|
||||
<entry>svn, <ulink
|
||||
url="http://svn0.us-west.FreeBSD.org/base/">http</ulink>,
|
||||
<ulink
|
||||
url="https://svn0.us-west.FreeBSD.org/base/">https</ulink></entry>
|
||||
|
||||
<entry>USA, California</entry>
|
||||
|
||||
<entry>SHA1
|
||||
<literal>79:35:8F:CA:6D:34:D9:30:44:D1:00:AF:33:4D:E6:11:44:4D:15:EC</literal></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><hostid
|
||||
role="fqdn">svn0.us-east.FreeBSD.org</hostid></entry>
|
||||
|
||||
<entry>svn, <ulink
|
||||
url="http://svn0.us-east.FreeBSD.org/base/">http</ulink>,
|
||||
<ulink
|
||||
url="https://svn0.us-east.FreeBSD.org/base/">https</ulink></entry>
|
||||
|
||||
<entry>USA, New Jersey</entry>
|
||||
|
||||
<entry>SHA1
|
||||
<literal>06:D1:23:DE:5E:7A:F7:2B:7A:7E:74:95:5F:54:8D:5C:B0:D6:2E:8F</literal></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="anoncvs">
|
||||
<title>Anonymous CVS</title>
|
||||
<title>Anonymous CVS (Deprecated)</title>
|
||||
|
||||
<sect2>
|
||||
<title><anchor id="anoncvs-intro"/>Introduction</title>
|
||||
<title>Warning</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>CVS</primary>
|
||||
<secondary>anonymous</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Anonymous CVS (or, as it is otherwise known,
|
||||
<emphasis>anoncvs</emphasis>) is a feature provided by the CVS
|
||||
utilities bundled with &os; for synchronizing with a remote
|
||||
CVS repository. Among other things, it allows users of &os;
|
||||
to perform, with no special privileges, read-only CVS
|
||||
operations against one of the &os; project's official anoncvs
|
||||
servers. To use it, one simply sets the
|
||||
<envar>CVSROOT</envar> environment variable to point at the
|
||||
appropriate anoncvs server, provides the well-known password
|
||||
<quote>anoncvs</quote> with the <command>cvs login</command>
|
||||
command, and then uses the &man.cvs.1; command to access it
|
||||
like any local repository.</para>
|
||||
|
||||
<note>
|
||||
<para>The <command>cvs login</command> command, stores the
|
||||
passwords that are used for authenticating to the CVS server
|
||||
in a file called <filename>.cvspass</filename> in your
|
||||
<envar>HOME</envar> directory. If this file does not exist,
|
||||
you might get an error when trying to use
|
||||
<command>cvs login</command> for the first time. Just make
|
||||
an empty <filename>.cvspass</filename> file, and retry to
|
||||
login.</para>
|
||||
</note>
|
||||
|
||||
<para>While it can also be said that the
|
||||
<link linkend="cvsup">CVSup</link> and
|
||||
<emphasis>anoncvs</emphasis> services both perform essentially
|
||||
the same function, there are various trade-offs which can
|
||||
influence the user's choice of synchronization methods. In a
|
||||
nutshell, <application>CVSup</application> is much more
|
||||
efficient in its usage of network resources and is by far the
|
||||
most technically sophisticated of the two, but at a price. To
|
||||
use <application>CVSup</application>, a special client must
|
||||
first be installed and configured before any bits can be
|
||||
grabbed, and then only in the fairly large chunks which
|
||||
<application>CVSup</application> calls
|
||||
<emphasis>collections</emphasis>.</para>
|
||||
|
||||
<para><application>Anoncvs</application>, by contrast, can be
|
||||
used to examine anything from an individual file to a specific
|
||||
program (like <command>ls</command> or
|
||||
<command>grep</command>) by referencing the CVS module name.
|
||||
Of course, <application>anoncvs</application> is also only
|
||||
good for read-only operations on the CVS repository, so if it
|
||||
is your intention to support local development in one
|
||||
repository shared with the &os; project bits then
|
||||
<application>CVSup</application> is really your only
|
||||
option.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title><anchor id="anoncvs-usage"/>Using Anonymous CVS</title>
|
||||
|
||||
<para>Configuring &man.cvs.1; to use an Anonymous CVS repository
|
||||
is a simple matter of setting the <envar>CVSROOT</envar>
|
||||
environment variable to point to one of the &os; project's
|
||||
<emphasis>anoncvs</emphasis> servers. At the time of this
|
||||
writing, the following servers are available:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>France</emphasis>:
|
||||
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
|
||||
(For pserver mode, use <command>cvs login</command> and
|
||||
enter the password <quote>anoncvs</quote> when prompted.
|
||||
For ssh, no password is required.)</para>
|
||||
</listitem>
|
||||
<!--
|
||||
<listitem>
|
||||
<para><emphasis>Japan</emphasis>:
|
||||
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
|
||||
(Use <command>cvs login</command> and enter the password
|
||||
<quote>anoncvs</quote> when prompted.)</para>
|
||||
</listitem>
|
||||
-->
|
||||
<listitem>
|
||||
<para><emphasis>Taiwan</emphasis>:
|
||||
:pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
|
||||
(For pserver mode, use <command>cvs login</command> and
|
||||
enter any password when prompted. For ssh, no password
|
||||
is required.)</para>
|
||||
|
||||
<programlisting>SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub
|
||||
SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
|
||||
|
||||
</listitem>
|
||||
<!--
|
||||
<listitem>
|
||||
<para><emphasis>USA</emphasis>:
|
||||
anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (For ssh, use ssh
|
||||
version 2 and no password is required.)</para>
|
||||
|
||||
<programlisting>SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
|
||||
|
||||
</listitem>
|
||||
-->
|
||||
</itemizedlist>
|
||||
|
||||
<para>Since CVS allows one to <quote>check out</quote> virtually
|
||||
any version of the &os; sources that ever existed (or, in some
|
||||
cases, will exist), you need to be familiar with the revision
|
||||
(<option>-r</option>) flag to &man.cvs.1; and what some of the
|
||||
permissible values for it in the &os; Project repository
|
||||
are.</para>
|
||||
|
||||
<para>There are two kinds of tags, revision tags and branch
|
||||
tags. A revision tag refers to a specific revision. Its
|
||||
meaning stays the same from day to day. A branch tag, on the
|
||||
other hand, refers to the latest revision on a given line of
|
||||
development, at any given time. Because a branch tag does not
|
||||
refer to a specific revision, it may mean something different
|
||||
tomorrow than it means today.</para>
|
||||
|
||||
<para><xref linkend="cvs-tags"/> contains revision tags that
|
||||
users might be interested in. Again, none of these are valid
|
||||
for the Ports Collection since the Ports Collection does not
|
||||
have multiple branches of development.</para>
|
||||
|
||||
<para>When you specify a branch tag, you normally receive the
|
||||
latest versions of the files on that line of development. If
|
||||
you wish to receive some past version, you can do so by
|
||||
specifying a date with the <option>-D date</option> flag. See
|
||||
the &man.cvs.1; manual page for more details.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Examples</title>
|
||||
|
||||
<para>While it really is recommended that you read the manual
|
||||
page for &man.cvs.1; thoroughly before doing anything, here
|
||||
are some quick examples which essentially show how to use
|
||||
Anonymous CVS:</para>
|
||||
|
||||
<example>
|
||||
<title>Checking Out Something from -CURRENT
|
||||
(&man.ls.1;):</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
|
||||
&prompt.user; <userinput>cvs login</userinput>
|
||||
<emphasis>At the prompt, enter any word for</emphasis> <quote>password</quote>.
|
||||
&prompt.user; <userinput>cvs co ls</userinput></screen>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Using SSH to Check Out the <filename>src/</filename>
|
||||
Tree:</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>cvs -d anoncvs@anoncvs1.FreeBSD.org:/home/ncvs co src</userinput>
|
||||
The authenticity of host 'anoncvs1.freebsd.org (216.87.78.137)' can't be established.
|
||||
DSA key fingerprint is 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62.
|
||||
Are you sure you want to continue connecting (yes/no)? <userinput>yes</userinput>
|
||||
Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hosts.</screen>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Checking Out the Version of &man.ls.1; in the 8-STABLE
|
||||
Branch:</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
|
||||
&prompt.user; <userinput>cvs login</userinput>
|
||||
<emphasis>At the prompt, enter any word for</emphasis> <quote>password</quote>.
|
||||
&prompt.user; <userinput>cvs co -rRELENG_8 ls</userinput></screen>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Creating a List of Changes (as Unified Diffs) to
|
||||
&man.ls.1;</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
|
||||
&prompt.user; <userinput>cvs login</userinput>
|
||||
<emphasis>At the prompt, enter any word for</emphasis> <quote>password</quote>.
|
||||
&prompt.user; <userinput>cvs rdiff -u -rRELENG_8_0_0_RELEASE -rRELENG_8_1_0_RELEASE ls</userinput></screen>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Finding Out What Other Module Names Can Be
|
||||
Used:</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
|
||||
&prompt.user; <userinput>cvs login</userinput>
|
||||
<emphasis>At the prompt, enter any word for</emphasis> <quote>password</quote>.
|
||||
&prompt.user; <userinput>cvs co modules</userinput>
|
||||
&prompt.user; <userinput>more modules/modules</userinput></screen>
|
||||
</example>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Other Resources</title>
|
||||
|
||||
<para>The following additional resources may be helpful in
|
||||
learning CVS:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><ulink
|
||||
url="http://users.csc.calpoly.edu/~gfisher/classes/308/handouts/cvs-basics.html">CVS
|
||||
Tutorial</ulink> from California Polytechnic State
|
||||
University.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://www.nongnu.org/cvs/">CVS
|
||||
Home</ulink>, the CVS development and support
|
||||
community.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink
|
||||
url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVSweb</ulink>
|
||||
is the &os; Project web interface for CVS.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<warning>
|
||||
<para>CVS has been deprecated by the project, and its use is not
|
||||
recommended. <application>Subversion</application> should be
|
||||
used instead.</para>
|
||||
</warning>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
@ -933,12 +620,234 @@ Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hos
|
|||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="svn">
|
||||
<title>Using <application>Subversion</application></title>
|
||||
|
||||
<sect2 id="svn-intro">
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>As of July 2012, &os; uses <ulink
|
||||
url="http://subversion.apache.org/">Subversion</ulink>
|
||||
(<emphasis>svn</emphasis>) as the primary version control system
|
||||
for storing all of &os;'s source code, documentation, and the
|
||||
Ports Collection.</para>
|
||||
|
||||
<note>
|
||||
<para>Subversion is generally a developer tool. Most users
|
||||
should use <link
|
||||
linkend="updating-upgrading-freebsdupdate">FreeBSD
|
||||
Update</link> to update the &os; base system, and <link
|
||||
linkend="updating-upgrading-portsnap">Portsnap</link> to
|
||||
update the &os; Ports Collection.</para>
|
||||
</note>
|
||||
|
||||
<para>In <application>Subversion</application>, URLs are used to
|
||||
designate a repository, taking the form of
|
||||
<replaceable>protocol://hostname/path</replaceable>. Mirrors may
|
||||
support different protocols as specified below. The first
|
||||
component of the path is the &os; repository to access. There
|
||||
are three different repositories, <literal>base</literal> for
|
||||
the &os; base system source code, <literal>ports</literal> for
|
||||
the Ports Collection, and <literal>doc</literal> for
|
||||
documentation. For example, the URL
|
||||
<literal>svn://svn0.us-east.FreeBSD.org/ports/head/</literal>
|
||||
specifies the main branch of the ports repository on the <hostid
|
||||
role="fqdn">svn0.us-east.FreeBSD.org</hostid> mirror, using the
|
||||
<literal>svn</literal> protocol.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="svn-install">
|
||||
<title>Installation</title>
|
||||
|
||||
<para><application>Subversion</application> must be installed
|
||||
before it can be used to check out the contents of any of the
|
||||
repositories. If a copy of the ports tree is already present,
|
||||
one can install <application>Subversion</application> like
|
||||
this:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/ports/devel/subversion</userinput>
|
||||
&prompt.root; <userinput>make install clean</userinput></screen>
|
||||
|
||||
<para>If the ports tree is not available,
|
||||
<application>Subversion</application> can be installed as a
|
||||
package:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg_add -r subversion</userinput></screen>
|
||||
|
||||
<para>If <application>pkgng</application> is being used to manage
|
||||
packages, <application>Subversion</application> can be installed
|
||||
with it instead:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg install devel/subversion</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="svn-usage">
|
||||
<title>Running <application>Subversion</application></title>
|
||||
|
||||
<para>The <command>svn</command> command can be used to fetch a
|
||||
clean copy of the sources from a given repository by
|
||||
typing:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>svn checkout <literal>svn://svn.FreeBSD.org/<replaceable>repository</replaceable>/<replaceable>branch</replaceable></literal> <replaceable>root</replaceable></userinput></screen>
|
||||
|
||||
<para>where:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><replaceable>repository</replaceable> is one of the
|
||||
Project repositories, i.e. <literal>base</literal>,
|
||||
<literal>ports</literal>, or <literal>doc</literal>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><replaceable>branch</replaceable> depends on the
|
||||
repository used. <literal>ports</literal> and
|
||||
<literal>doc</literal> are mostly updated in the
|
||||
<literal>head</literal> branch, while
|
||||
<literal>base</literal> maintains the latest version of
|
||||
-CURRENT under <literal>head</literal> and the respective
|
||||
latest versions of the -STABLE branches under
|
||||
<literal>stable/8</literal> (for
|
||||
8.<replaceable>x</replaceable>) and
|
||||
<literal>stable/9</literal>
|
||||
(9.<replaceable>x</replaceable>).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><replaceable>root</replaceable> is the target directory
|
||||
where the contents of the specified branch should be placed.
|
||||
This is usually <filename
|
||||
class="directory">/usr/ports</filename> for
|
||||
<literal>ports</literal>, <filename
|
||||
class="directory">/usr/src</filename> for
|
||||
<literal>base</literal>, and <filename
|
||||
class="directory">/usr/doc</filename> for
|
||||
<literal>doc</literal>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Note that the initial download of the sources may take a
|
||||
while. Let it run until it completes.</para>
|
||||
|
||||
<para>Future updates of the downloaded sources may be fetched by
|
||||
running:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>svn update <replaceable>root</replaceable></userinput></screen>
|
||||
|
||||
<para>After checking out the sources, an alternative way of
|
||||
updating the documentation is supported by the
|
||||
<filename>Makefile</filename> of the <filename
|
||||
class="directory"><replaceable>root</replaceable></filename>
|
||||
directory by running:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd <replaceable>root</replaceable></userinput>
|
||||
&prompt.root; <userinput>make update SVN_UPDATE=yes</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>For More Information</title>
|
||||
|
||||
<para>For other information about using
|
||||
<application>Subversion</application>, please see the
|
||||
<quote>Subversion Book</quote>, titled <ulink
|
||||
url="http://svnbook.red-bean.com/">Version Control with
|
||||
Subversion</ulink>, or the <ulink
|
||||
url="http://subversion.apache.org/docs/">Subversion
|
||||
Documentation</ulink>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="svn-mirrors">
|
||||
<title><application>Subversion</application> Sites</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>svn</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>All mirrors carry all repositories.</para>
|
||||
|
||||
<para>The master &os; <application>Subversion</application>
|
||||
server, <hostid role="fqdn">svn.FreeBSD.org</hostid>, is publicly
|
||||
accessible, read-only. That may change in the future, so users
|
||||
are encouraged to use one of the official mirrors. To view the
|
||||
&os; <application>Subversion</application> repositories through
|
||||
a browser, use <ulink
|
||||
url="http://svnweb.FreeBSD.org/">http://svnweb.FreeBSD.org/</ulink>.</para>
|
||||
|
||||
<note>
|
||||
<para>The &os; svn mirror network is still in its early days, and
|
||||
will likely change. Do not count on this list of mirrors being
|
||||
static. In particular, the SSL certificates of the servers will
|
||||
likely change at some point.</para>
|
||||
</note>
|
||||
|
||||
<informaltable>
|
||||
<tgroup cols="4">
|
||||
<colspec colwidth="3*"/>
|
||||
<colspec colwidth="1*"/>
|
||||
<colspec colwidth="2*"/>
|
||||
<colspec colwidth="10*"/>
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Name</entry>
|
||||
|
||||
<entry>Protocols</entry>
|
||||
|
||||
<entry>Location</entry>
|
||||
|
||||
<entry>SSL fingerprint</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><hostid
|
||||
role="fqdn">svn0.us-west.FreeBSD.org</hostid></entry>
|
||||
|
||||
<entry>svn, <ulink
|
||||
url="http://svn0.us-west.FreeBSD.org/base/">http</ulink>,
|
||||
<ulink
|
||||
url="https://svn0.us-west.FreeBSD.org/base/">https</ulink></entry>
|
||||
|
||||
<entry>USA, California</entry>
|
||||
|
||||
<entry>SHA1
|
||||
<literal>79:35:8F:CA:6D:34:D9:30:44:D1:00:AF:33:4D:E6:11:44:4D:15:EC</literal></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><hostid
|
||||
role="fqdn">svn0.us-east.FreeBSD.org</hostid></entry>
|
||||
|
||||
<entry>svn, <ulink
|
||||
url="http://svn0.us-east.FreeBSD.org/base/">http</ulink>,
|
||||
<ulink
|
||||
url="https://svn0.us-east.FreeBSD.org/base/">https</ulink></entry>
|
||||
|
||||
<entry>USA, New Jersey</entry>
|
||||
|
||||
<entry>SHA1
|
||||
<literal>06:D1:23:DE:5E:7A:F7:2B:7A:7E:74:95:5F:54:8D:5C:B0:D6:2E:8F</literal></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="cvsup">
|
||||
<title>Using CVSup</title>
|
||||
<title>Using CVSup (Deprecated)</title>
|
||||
|
||||
<sect2 id="cvsup-intro">
|
||||
<title>Introduction</title>
|
||||
|
||||
<warning>
|
||||
<para><command>cvsup</command> has been deprecated by the
|
||||
project, and its use is not recommended.
|
||||
<application>Subversion</application> should be used
|
||||
instead.</para>
|
||||
</warning>
|
||||
|
||||
<para><application>CVSup</application> is a software package for
|
||||
distributing and updating source trees from a master CVS
|
||||
repository on a remote server host. The &os; sources are
|
||||
|
@ -2485,6 +2394,12 @@ doc/zh_*</programlisting>
|
|||
<sect1 id="cvs-tags">
|
||||
<title>CVS Tags</title>
|
||||
|
||||
<warning>
|
||||
<para>CVS has been deprecated by the project, and its use is not
|
||||
recommended. <application>Subversion</application> should be
|
||||
used instead.</para>
|
||||
</warning>
|
||||
|
||||
<para>When obtaining or updating sources using
|
||||
<application>cvs</application> or
|
||||
<application>CVSup</application>, a revision tag must be
|
||||
|
|
Loading…
Reference in a new issue