Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Nov 2012 05:26:13 +0000 (UTC)
From:      Gabor Pali <pgj@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r40050 - in head/en_US.ISO8859-1/books/handbook: cutting-edge mirrors
Message-ID:  <201211170526.qAH5QDME035815@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pgj (ports committer)
Date: Sat Nov 17 05:26:13 2012
New Revision: 40050
URL: http://svnweb.freebsd.org/changeset/doc/40050

Log:
  - 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

Modified:
  head/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
  head/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml

Modified: head/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml	Fri Nov 16 19:50:44 2012	(r40049)
+++ head/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml	Sat Nov 17 05:26:13 2012	(r40050)
@@ -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,10 +1401,13 @@ Fetching 133 new ports or files... done.
 	  <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>
 	      <indexterm>
@@ -1422,21 +1421,33 @@ Fetching 133 new ports or files... done.
 	      </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.
 		  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&nbsp;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.
 
 	    <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,10 +1639,13 @@ Fetching 133 new ports or files... done.
 	      &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>
 	      <indexterm>
@@ -1641,24 +1654,42 @@ Fetching 133 new ports or files... done.
 	      <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.
       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.
       <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>

Modified: head/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml	Fri Nov 16 19:50:44 2012	(r40049)
+++ head/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml	Sat Nov 17 05:26:13 2012	(r40050)
@@ -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>
-
-      <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>
+      <title>Warning</title>
 
-      <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.fre
     </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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211170526.qAH5QDME035815>