Play grim reaper and remove the obsolete article about
CVSup Advanced points from the repository including translations. Announced on and no objections from: freebsd-doc mailinglist
This commit is contained in:
parent
fb122a85cf
commit
7feccf6673
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=41535
9 changed files with 0 additions and 959 deletions
en_US.ISO8859-1/articles
fr_FR.ISO8859-1/articles
ru_RU.KOI8-R/articles
|
@ -13,7 +13,6 @@ SUBDIR+= contributors
|
|||
SUBDIR+= cups
|
||||
SUBDIR+= custom-gcc
|
||||
SUBDIR+= cvs-freebsd
|
||||
SUBDIR+= cvsup-advanced
|
||||
SUBDIR+= explaining-bsd
|
||||
SUBDIR+= fbsd-from-scratch
|
||||
SUBDIR+= filtering-bridges
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Article: CVSup Advanced Points
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
@ -1,274 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN"
|
||||
"../../../share/xml/freebsd42.dtd" [
|
||||
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//EN" "../../share/xml/entities.ent">
|
||||
%entities;
|
||||
]>
|
||||
|
||||
<article lang='en'>
|
||||
<articleinfo>
|
||||
<title>CVSup Advanced Points</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Salvo</firstname>
|
||||
<surname>Bartolotta</surname>
|
||||
|
||||
<affiliation>
|
||||
<address><email>bartequi@neomedia.it</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<legalnotice id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.cvsup;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<abstract>
|
||||
<para>The present article assumes a basic understanding of <application>CVSup</application>
|
||||
operation. It documents several delicate issues connected with
|
||||
source synchronization via <application>CVSup</application>, viz. effective solutions to
|
||||
the problem of stale files as well as special source updating
|
||||
cases; which issues are likely to cause apparently inexplicable
|
||||
troubles.</para>
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="preface">
|
||||
<title>Preface</title>
|
||||
|
||||
<para>This document is the fruit of the author's attempts to
|
||||
fully understand the niceties of <application>CVSup</application> & source updating. :-)
|
||||
While the author has made every effort to make these pages
|
||||
as informative and correct as possible, he is only human and
|
||||
may have made all sorts of typos, mistakes, etc. He will be
|
||||
very grateful for any comments and/or suggestions you send to
|
||||
his e-mail address, <email>bartequi@neomedia.it</email>.</para>
|
||||
</sect1>
|
||||
|
||||
|
||||
<sect1 id="introduction">
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>If you have visited
|
||||
<ulink url="http://www.polstra.com/">John Polstra's site</ulink>
|
||||
and read
|
||||
<ulink url="http://www.polstra.com/projects/freeware/CVSup/faq.html">his
|
||||
FAQ</ulink>,
|
||||
you may have noticed Question 12 & 13.</para>
|
||||
|
||||
<para>When updating any collection of sources (eg
|
||||
<filename>/usr/ports</filename>), &man.cvsup.1; makes use of
|
||||
the related checkouts file in order to perform the updating
|
||||
process in the most efficient and correct way. In this example
|
||||
(<filename>/usr/ports</filename>), the related checkouts file
|
||||
is <filename>/usr/sup/ports-all/checkouts.cvs:.</filename> if
|
||||
your base is <filename>/usr</filename>.</para>
|
||||
|
||||
<para>A checkouts file contains information on the current status
|
||||
of your sources—in a way, a sort of <quote>photograph</quote>. This
|
||||
significant information enables <command>cvsup</command> to retrieve updates most
|
||||
effectively. Further, and maybe more important, it enables <command>cvsup</command>
|
||||
to correctly manage your sources by locally deleting any files
|
||||
no longer present in the repository, thus leaving no stale files
|
||||
on your system. In fact, without a checkouts file, <command>cvsup</command> would
|
||||
<emphasis>not</emphasis> know which files your collection was composed of (cf
|
||||
&man.cvsup.1; and the fallback method for details); as a result,
|
||||
it could not delete on your system those files no longer present
|
||||
in the repository. They would remain on your system (stale
|
||||
files), and might cause you subtle build failures or other
|
||||
trouble. For example, this problem is likely to occur if you
|
||||
first update your ports collection several weeks after you
|
||||
got your installation CD-ROMs.</para>
|
||||
|
||||
<para>It is therefore recommended that you adopt the two-step procedure
|
||||
outlined in the <application>CVSup</application> FAQ (cf Q12, Q13); in subsequent sections, you
|
||||
will be given interesting and instructive concrete examples.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="script">
|
||||
<title>A useful python script: <command>cvsupchk</command></title>
|
||||
|
||||
<para>Alternatively, in order to examine your sources for
|
||||
inconsistencies, you may wish to utilize the <command>cvsupchk</command> python
|
||||
script; which script is currently found in
|
||||
<filename>/usr/ports/net/cvsup/work/cvsup-16.1/contrib/cvsupchk</filename>,
|
||||
together with a nice <filename>README</filename>. Prerequisites:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para><literal>/usr/ports/net/cvsup</literal> &prompt.root;
|
||||
<userinput> make extract</userinput></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>python (also found in the ports collection :-))</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>a checkouts file for your collection of sources.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>If you are updating your sources for the very first time,
|
||||
of course you do not have a checkouts file. After installing
|
||||
python and updating your sources (eg <filename>/usr/ports</filename>),
|
||||
you can check them thus:</para>
|
||||
|
||||
<screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/ports-all/checkouts.cvs:. | more</userinput></screen>
|
||||
|
||||
<para>If you want to check your RELENG_4 sources:</para>
|
||||
|
||||
<screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/src-all/checkouts.cvs:RELENG_4 | more</userinput></screen>
|
||||
|
||||
<para>In each case, <command>cvsupchk</command> will inspect your sources for
|
||||
inconsistencies by utilizing the information contained in the
|
||||
related checkouts file. Such anomalies as deleted files being
|
||||
present (aka stale files), missing checked-out files, extra RCS
|
||||
files, and dead directories will be printed to standard output.</para>
|
||||
|
||||
<para>In the next section, we will provide important, typical
|
||||
examples of source updating; which examples will show you the
|
||||
role of checkouts files and the dangers of negligent source
|
||||
management.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="examples">
|
||||
<title>Examples of more advanced source management</title>
|
||||
|
||||
<sect2>
|
||||
<title>How to safely change tags when updating
|
||||
<literal>src-all</literal></title>
|
||||
|
||||
<para>If you specify eg <literal>tag=A</literal> in your <filename>supfile</filename>, <command>cvsup</command> will create
|
||||
a checkouts file called <filename>checkouts.cvs:A</filename>:
|
||||
for instance, if <literal>tag=RELENG_4</literal>, a checkouts file called
|
||||
<filename>checkouts.cvs:RELENG_4</filename> is generated.
|
||||
This file will be used to retrieve and/or store information
|
||||
identifying your 4-STABLE sources.</para>
|
||||
|
||||
<para>When tracking <literal>src-all</literal>, if you wish to
|
||||
pass from <literal>tag=A</literal> to <literal>tag=B</literal> (A less/greater than B not making
|
||||
any difference) and if your checkouts file is
|
||||
<filename>checkouts.cvs:A</filename>, the following actions
|
||||
should be performed:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>&prompt.root; <userinput>mv checkouts.cvs:A
|
||||
checkouts.cvs:B</userinput>
|
||||
(This provides the subsequent step with the appropriate
|
||||
checkouts file)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>write a <filename>supfile</filename> whose collection line reads:</para>
|
||||
<programlisting>src-all tag=B</programlisting>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>cvsup your sources using the new <filename>supfile</filename>.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>The <command>cvsup</command> utility will look for <filename>checkouts.cvs:B</filename>—in
|
||||
that the target is B; that is, <command>cvsup</command> will make use of
|
||||
the information contained therein to correctly manage your
|
||||
sources.</para>
|
||||
|
||||
<para>The benefits:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>the sources are dealt with correctly (in particular,
|
||||
no stale files)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>less load is placed on the server, in that <command>cvsup</command>
|
||||
operates in the most efficient way.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
||||
<para>For example, <literal>A=RELENG_4</literal>, <literal>B=.</literal>. The period in <literal>B=.</literal> means
|
||||
-CURRENT. This is a rather typical update, from 4-STABLE
|
||||
to -CURRENT. While it is straightforward to <quote>downgrade</quote> your
|
||||
sources (e.g., from -CURRENT to -STABLE), downgrading a system
|
||||
is quite another matter. You are STRONGLY advised not to
|
||||
attempt such an operation, unless you know exactly what you
|
||||
are doing.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Updating to the same tag as of a different date</title>
|
||||
|
||||
<para>If you wish to switch from <literal>tag=A</literal> to <literal>tag=A</literal> as of a
|
||||
different GMT date (say, <literal>date=D</literal>), you will execute the
|
||||
following:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>write a <filename>supfile</filename> whose collection line reads:</para>
|
||||
<programlisting>src-all tag=A date=D</programlisting>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>update your sources using the new <filename>supfile</filename></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Whether the new date precedes that of the last sync
|
||||
operation with <literal>tag=A</literal> or not, it is immaterial. For example,
|
||||
in order to specify the date <quote>August 27, 2000, 10:00:00 GMT</quote>
|
||||
you write the line:</para>
|
||||
|
||||
|
||||
<programlisting>src-all tag=RELENG_4 date=2000.08.27.10.00.00</programlisting>
|
||||
|
||||
<note><para>The format of a date is rigid. You have to specify
|
||||
all the components of the date: century (<quote>20</quote>, i.e., the 21st
|
||||
century, must be supplied whereas <quote>19</quote>, the past century, can
|
||||
be omitted), year, month, day, hour, minutes, seconds—as
|
||||
shown in the above example. For more information, please
|
||||
see &man.cvsup.1;.</para></note>
|
||||
|
||||
<para>Whether or not a date is specified, the checkouts file
|
||||
is called <filename>checkouts.cvs:A</filename> (e.g.,
|
||||
<filename>checkouts.cvs:RELENG_4</filename>). As a result,
|
||||
no particular action is needed in order to revert to the
|
||||
previous state: you have to modify the date in the <filename>supfile</filename>,
|
||||
and run <command>csvup</command> again.</para>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2>
|
||||
<title>Updating your ports collection for the first time</title>
|
||||
|
||||
<para>If you want to <quote>sync</quote> your ports tree for
|
||||
the first time you should use a tag that matches your &os;
|
||||
installation. E.g., if you have installed the Ports
|
||||
Collection during the installation of &os; 5.3-RELEASE the
|
||||
following should be used:
|
||||
<programlisting>ports-all tag=RELEASE_5_3_0</programlisting>
|
||||
The <command>cvsup</command> program will create a ports
|
||||
checkout file, which is precisely the goal of the first
|
||||
special sync operation. Now we can use the <quote>.</quote>
|
||||
tag to update the tree whenever we feel it should be updated:
|
||||
<programlisting>ports-all tag=.</programlisting>
|
||||
All subsequent updates will be carried out smoothly.</para>
|
||||
|
||||
<para>If you have been reading the apparently nit-picking
|
||||
remarks in these sections, you will probably have recognized
|
||||
the potential for trouble in a source updating process.
|
||||
A number of people have actually run into problems. You have
|
||||
been warned. :-)</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>
|
|
@ -11,7 +11,6 @@ SUBDIR+= committers-guide
|
|||
SUBDIR+= contributing
|
||||
SUBDIR+= contributing-ports
|
||||
SUBDIR+= contributors
|
||||
SUBDIR+= cvsup-advanced
|
||||
SUBDIR+= explaining-bsd
|
||||
SUBDIR+= filtering-bridges
|
||||
SUBDIR+= fonts
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD French Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# Original revision: 1.1
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
JADEFLAGS+= -V %generate-article-toc%
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
@ -1,342 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN"
|
||||
"../../../share/xml/freebsd42.dtd" [
|
||||
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//FR" "../../share/xml/entities.ent">
|
||||
%entities;
|
||||
<!ENTITY % not.published "IGNORE">
|
||||
]>
|
||||
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD French Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$Id: article.xml,v 1.7 2007-01-20 13:34:48 blackend Exp $
|
||||
Original revision: 1.12
|
||||
-->
|
||||
|
||||
<article lang="fr">
|
||||
<articleinfo>
|
||||
<title>Utilisation avancée de cvsup</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Salvo</firstname>
|
||||
<surname>Bartolotta</surname>
|
||||
|
||||
<affiliation>
|
||||
<address><email>bartequi@neomedia.it</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<legalnotice id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.cvsup;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
<abstract>
|
||||
<para>Le présent article suppose une compréhension
|
||||
de base de l'utilisation de <application>CVSup</application>.
|
||||
Il expose plusieurs problèmes délicats
|
||||
liés à la synchronisation des sources à
|
||||
l'aide de <application>CVSup</application>, c'est à
|
||||
dire des solutions efficaces aux problèmes des fichiers
|
||||
obsolètes aussi bien qu'aux cas spéciaux de mise
|
||||
à jour des sources, ces problèmes sont susceptibles
|
||||
de causer des désagréments apparemment
|
||||
inexplicables.</para>
|
||||
|
||||
&trans.a.fonvieille;
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="preface">
|
||||
<title>Préface</title>
|
||||
|
||||
<para>Ce document est le fruit des tentatives de l'auteur de
|
||||
comprendre les finesses de <application>CVSup</application> et
|
||||
de la mise à jour des sources. :-)
|
||||
Bien que l'auteur ait fait de nombreux efforts pour
|
||||
rendre ces pages aussi instructives et correctes que possible,
|
||||
il n'est qu'un être humain et a pu avoir commis toutes sortes
|
||||
de coquilles, d'erreurs, etc... Il sera vraiment reconnaissant
|
||||
pour tous les commentaires et/ou suggestions que vous enverrez
|
||||
à son adresse électronique
|
||||
<email>bartequi@neomedia.it</email>.</para>
|
||||
</sect1>
|
||||
|
||||
|
||||
<sect1 id="introduction">
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>Si vous avez consulté le <ulink
|
||||
url="http://www.polstra.com/">site de John Polstra</ulink> et lu
|
||||
sa <ulink
|
||||
url="http://www.polstra.com/projects/freeware/CVSup/faq.html">FAQ</ulink>,
|
||||
vous avez pu avoir remarqué les questions 12 et 13.</para>
|
||||
|
||||
<para>En mettant à jour n'importe quelle “catalogue”
|
||||
- collection de sources (e.g. <filename>/usr/ports</filename>),
|
||||
&man.cvsup.1; se sert des fichiers de “checkouts”
|
||||
relatifs afin d'effectuer le processus de mise à jour de la
|
||||
manière la plus efficace et la plus correcte possible. Dans cet
|
||||
exemple (<filename>/usr/ports</filename>), le fichiers de
|
||||
“checkouts” relatif est
|
||||
<filename>/usr/sup/ports-all/checkouts.cvs:.</filename> si votre
|
||||
répertoire de base est <filename>/usr</filename>.</para>
|
||||
|
||||
<para>Un fichier “checkouts” contient l'information
|
||||
sur l'état actuel de vos sources -- d'une certaine
|
||||
manière, une sorte de “photographie”. Cette
|
||||
information permet à <application>cvsup</application> de
|
||||
rechercher les mises à jour le plus efficacement. De
|
||||
plus, et c'est peut-être plus important, il permet
|
||||
à <application>cvsup</application> de gérer
|
||||
correctement vos sources en effaçant localement tout
|
||||
fichier qui n'est plus présent sur l'archive centrale,
|
||||
et de ce fait ne pas laisser de fichiers obsolètes sur
|
||||
votre système. En fait, sans un fichier
|
||||
“checkouts”, <application>cvsup</application> ne
|
||||
saurait PAS de quels fichiers votre catalogue est composé
|
||||
(Cf &man.cvsup.1; pour plus de détails), et en
|
||||
conséquence, il ne pourrait PAS effacer de votre
|
||||
système ces fichiers qui ne sont plus présents sur
|
||||
l'archive centrale. Ils resteraient sur votre système
|
||||
(les fichiers obsolètes), et pourraient vous causer de
|
||||
subtiles échecs de compilation ou tout autre
|
||||
désagrément. Par exemple, ce problème est
|
||||
susceptible de se produire si vous mettez à jour votre
|
||||
catalogue de logiciels portés plusieurs semaines
|
||||
après que vous ayez eu vos CDROMs d'installation.</para>
|
||||
|
||||
<para>Il est donc recommandé que vous adoptiez la
|
||||
procédure en deux temps décrite dans la FAQ de
|
||||
<application>CVSup</application> (Cf Q12, Q13); dans les
|
||||
sections suivantes, on vous présentera des exemples
|
||||
concrets intéressant et instructifs.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="script">
|
||||
<title>Une procédure python utile: cvsupchk</title>
|
||||
|
||||
<para>Alternativement, afin d'examiner les sources pour les
|
||||
inconsistences, vous pouvez souhaiter utiliser la procédure
|
||||
python <command>cvsupchk</command>, procédure qui se
|
||||
trouve actuellement dans
|
||||
<filename>/usr/ports/net/cvsup/work/cvsup-16.1/contrib/cvsupchk</filename>,
|
||||
avec un sympathique <filename>README</filename>.
|
||||
Prérequis:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para><literal>/usr/ports/net/cvsup</literal> &prompt.root;
|
||||
<userinput> make extract</userinput></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>python (que l'on trouve également dans le catalogue
|
||||
des logiciels portés :-)).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Un fichier “checkouts” pour votre
|
||||
catalogue des sources.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Si vous mettez à jour vos sources pour la toute
|
||||
première fois, naturellement vous n'avez pas de fichier
|
||||
“checkouts”. Après l'installation de python
|
||||
et la mise à jour de vos sources (e.g.
|
||||
<filename>/usr/ports</filename>), vous pouvez les vérifier
|
||||
ainsi:</para>
|
||||
|
||||
<screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/ports-all/checkouts.cvs:. | more</userinput></screen>
|
||||
|
||||
<para>Si vous désirez vérifier vos sources RELENG_4:</para>
|
||||
|
||||
<screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/src-all/checkouts.cvs:RELENG_4 | more</userinput></screen>
|
||||
|
||||
<para>Dans chaque cas, <command>cvsupchk</command>
|
||||
inspectera vos sources à la
|
||||
recherche d'inconsistances en utilisant les informations
|
||||
contenues dans le fichier de “checkouts” relatif.
|
||||
Des anomalies comme des fichiers effacés, encore
|
||||
présents (aka fichiers obsolètes), fichiers
|
||||
récupérés absents, fichiers RCS
|
||||
supplémentaires, et répertoires vides seront
|
||||
affichés sur la sortie standard.</para>
|
||||
|
||||
<para>Dans la section suivante, nous présenterons des exemples
|
||||
typiques de la mise à jour de source, exemples qui vous
|
||||
montreront le rôle des fichiers de “checkouts”
|
||||
et les dangers d'une gestion négligée des sources.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="examples">
|
||||
<title>Exemples avancés de gestion des sources</title>
|
||||
|
||||
<sect2>
|
||||
<title>Comment modifier sans risques le champ tag quand vous
|
||||
mettez à jour <literal>src-all</literal></title>
|
||||
|
||||
<para>Si vous spécifiez par exemple <literal>tag=A</literal>
|
||||
dans votre fichier <filename>supfile</filename>,
|
||||
<application>cvsup</application> créera
|
||||
un fichier “checkouts” appelé
|
||||
<filename>checkouts.cvs:A</filename>, par exemple avec le
|
||||
champ <literal>tag=RELENG_4</literal>, un fichier de
|
||||
“checkouts”
|
||||
<filename>checkouts.cvs:RELENG_4</filename> est
|
||||
généré. Ce fichier sera utilisé
|
||||
pour récupérer et/ou stocker
|
||||
l'information identifiant vos sources 4-STABLE.</para>
|
||||
|
||||
<para>En suivant le catalogue <literal>src-all</literal>, si
|
||||
vous souhaitez passer de <literal>tag=A</literal> à
|
||||
<literal>tag=B</literal> (A inférieur/supérieur
|
||||
à B important peu) et si votre fichier
|
||||
“checkouts” est
|
||||
<filename>checkouts.cvs:A</filename>, les opérations
|
||||
suivantes devront être effectuées:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>&prompt.root; <userinput>mv checkouts.cvs:A
|
||||
checkouts.cvs:B</userinput>
|
||||
(ceci fournit à l'étape suivante le fichier
|
||||
“checkouts” approprié)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Ecrivez un fichier <filename>supfile</filename>
|
||||
dont la ligne désignant le catalogue est:</para>
|
||||
<programlisting>src-all tag=B</programlisting>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Cvsupez vos sources en utilisant le nouveau
|
||||
<filename>supfile</filename>.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para><application>Cvsup</application> recherchera <filename>checkouts.cvs:B</filename>
|
||||
-- dans ce cas la cible est B, c'est à dire que
|
||||
<application>cvsup</application> se
|
||||
servira des informations contenues dans ce fichier pour gérer
|
||||
correctement vos sources.</para>
|
||||
|
||||
<para>Les avantages:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Les sources sont traitées correctement (en
|
||||
particulier aucun fichier obsolète).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Moins de charge sur le serveur, dans ce cas
|
||||
<application>CVSup</application>
|
||||
agit de la manière la plus efficace.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
||||
<para>Par exemple, <literal>A=RELENG_4</literal>,
|
||||
<literal>B=.</literal>, le point dans <literal>B=.</literal>
|
||||
signifie -CURRENT. C'est une mise à jour plutôt
|
||||
typique de la branche 4-STABLE vers la branche -CURRENT.
|
||||
Alors qu'il est simple de revenir à une ancienne
|
||||
version de sources (e.g. -CURRENT vers -STABLE), il n'en va
|
||||
pas de même avec le système. Vous êtes
|
||||
FORTEMENT déconseillé de tenter une telle
|
||||
opération, à moins que vous ne sachiez
|
||||
exactement ce que vous faites.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Mettre à jour en conservant le même champ
|
||||
tag mais pour une date différente</title>
|
||||
|
||||
<para>Si vous souhaitez basculer du champ <literal>tag=A</literal>
|
||||
au champ <literal>tag=A</literal> avec une date GMT
|
||||
différente (disons <literal>date=D</literal>) vous
|
||||
exécuterez ce qui suit:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Ecrivez un <filename>supfile</filename> dont la
|
||||
ligne désignant le catalogue est:</para>
|
||||
<programlisting>src-all tag=A date=D</programlisting>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Mettez à jour vos sources en utilisant le nouveau
|
||||
<filename>supfile</filename>.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Que la nouvelle date précède ou non celle
|
||||
de la dernière synchronisation avec le champ
|
||||
<literal>tag=A</literal> est peu important. Par exemple,
|
||||
afin d'indiquer la date du “27 Août 2000 à
|
||||
10h00s00 GMT” vous écrirez la ligne:</para>
|
||||
|
||||
|
||||
<programlisting>src-all tag=RELENG_4 date=2000.08.27.10.00.00</programlisting>
|
||||
|
||||
<note><para>Le format de la date est rigide. Vous devez
|
||||
indiquer toutes les composantes de la date: le siècle
|
||||
(<quote>20</quote>, i.e. le vingtième siècle, doit être
|
||||
fourni tandis que <quote>19</quote>, le siècle passé peut
|
||||
être omis), l'année, le mois, le jour, l'heure,
|
||||
les minutes et les secondes — comme montré dans
|
||||
l'exemple ci-dessus. Pour plus d'information, veuillez
|
||||
consulter la page de manuel &man.cvsup.1;.</para></note>
|
||||
|
||||
<para>Qu'une date soit spécifiée ou non, le fichier
|
||||
“checkouts” est appelé
|
||||
<filename>checkouts.cvs:A</filename> (e.g.
|
||||
<filename>checkouts.cvs:RELENG_4</filename>). Comme
|
||||
conséquence, aucune action particulière n'est
|
||||
nécessaire afin de retourner à l'état
|
||||
précédent: vous devez modifier la date
|
||||
dans le <filename>supfile</filename> et remettre à
|
||||
jour à nouveau.</para>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2>
|
||||
<title>Mise à jour de votre catalogue des logiciels
|
||||
portés pour la première fois</title>
|
||||
|
||||
<para>Comme les logiciels portés sont
|
||||
étiquetés “.” (i.e. -CURRENT),
|
||||
vous pouvez correctement les synchroniser en
|
||||
ajoutant le mot-clé <literal>date</literal> (Cf
|
||||
&man.cvsup.1; pour le format exact), vous devriez
|
||||
spécifier une date aussi proche que possible que celle
|
||||
de “l'expédition” de votre catalogue de
|
||||
logiciel porté. Après que <application>CVSup</application> ait
|
||||
créé le fichier “checkouts” du catalogue des
|
||||
logiciels portés, qui est précisément le
|
||||
but de cette première opération de synchronisation,
|
||||
le champ <literal>date</literal> doit être retiré,
|
||||
toutes les mises à jour suivantes seront faites en
|
||||
douceur.</para>
|
||||
|
||||
<para>Si vous avez voulu chercher la petite bête dans ce texte,
|
||||
vous vous êtes probablement aperçu des
|
||||
problèmes potentiels du processus de mise à jour des
|
||||
sources. Un certain nombre de personnes ont eu réellement
|
||||
des problèmes. Vous avez été
|
||||
avertis. :-)</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>
|
|
@ -15,7 +15,6 @@ SUBDIR+= contributing
|
|||
SUBDIR+= cups
|
||||
SUBDIR+= custom-gcc
|
||||
SUBDIR+= cvs-freebsd
|
||||
SUBDIR+= cvsup-advanced
|
||||
SUBDIR+= explaining-bsd
|
||||
SUBDIR+= fbsd-from-scratch
|
||||
#SUBDIR+= filtering-bridges
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Russian Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/cvsup-advanced/Makefile,v 1.3 2005/06/12 05:19:07 gad Exp $
|
||||
#
|
||||
# Original revision: r20561
|
||||
#
|
||||
# Article: CVSup Advanced Points
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
WITH_ARTICLE_TOC?=YES
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
@ -1,280 +0,0 @@
|
|||
<?xml version="1.0" encoding="koi8-r" standalone="no"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN"
|
||||
"../../../share/xml/freebsd42.dtd" [
|
||||
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//RU" "../../share/xml/entities.ent">
|
||||
%entities;
|
||||
]>
|
||||
|
||||
<!--
|
||||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/cvsup-advanced/article.xml,v 1.5 2005/06/12 05:18:06 gad Exp $
|
||||
|
||||
Original revision: r23909
|
||||
-->
|
||||
|
||||
<article lang="ru">
|
||||
<articleinfo>
|
||||
<title>Тонкие вопросы работы CVSup</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Salvo</firstname>
|
||||
<surname>Bartolotta</surname>
|
||||
|
||||
<affiliation>
|
||||
<address><email>bartequi@neomedia.it</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<legalnotice id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.cvsup;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<abstract>
|
||||
<para>В этой статье предполагается понимание основ
|
||||
работы <application>CVSup</application>. В ней описываются некоторые
|
||||
тонкие вопросы, связанные с синхронизацией исходных текстов при помощи
|
||||
<application>CVSup</application>, описаны эффективные решения для проблемы
|
||||
потерянных файлов, а также особые случаи обновления исходных текстов; вопросы,
|
||||
которые, скорее всего, вызывают неожиданно возникающие проблемы.</para>
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="preface">
|
||||
<title>Обзор</title>
|
||||
|
||||
<para>Этот документ является плодом попыток автора полностью понять
|
||||
преимущества <application>CVSup</application> & обновления
|
||||
исходного кода. :-) Хотя автор прилагал все усилия, чтобы сделать
|
||||
эти страницы максимально информативными и корректными, он всего лишь
|
||||
человек и мог сделать все типы опечаток, ошибок и так далее. Он будет
|
||||
очень признателен за любые комментарии и/или пожелания, которые вы пришлете
|
||||
ему по электронной почте на адрес <email>bartequi@neomedia.it</email>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="introduction">
|
||||
<title>Введение</title>
|
||||
|
||||
<para>Если вы посещали <ulink url="http://www.polstra.com/">сайт Джона
|
||||
Полстра</ulink> (John Polstra) и прочли <ulink
|
||||
url="http://www.polstra.com/projects/freeware/CVSup/faq.html">его
|
||||
FAQ</ulink>, то вы могли отметить вопросы 12 & 13.</para>
|
||||
|
||||
<para>При обновлении любого набора исходных текстов (например,
|
||||
<filename>/usr/ports</filename>), &man.cvsup.1; использует
|
||||
соответствующий файл извлечений для того, чтобы выполнять процесс
|
||||
обновления самым правильным и эффективным способом. В этом примере
|
||||
(<filename>/usr/ports</filename>), соответствующим файлом извлечений
|
||||
является <filename>/usr/sup/ports-all/checkouts.cvs:.</filename> если
|
||||
основным каталогом является <filename>/usr</filename>.</para>
|
||||
|
||||
<para>Файл извлечений содержит информацию о текущем состоянии ваших
|
||||
исходных текстов — нечто вроде <quote>фотографии</quote>. Эта
|
||||
значащая информация позволяет <command>cvsup</command> сгружать
|
||||
обновления наиболее эффективно. К тому же, и, может быть, более
|
||||
важно то, что это позволяет <command>cvsup</command> правильно
|
||||
управлять вашими исходными текстами, удаляя локальные файлы, которых
|
||||
больше нет в хранилище, таким образом не позволяя появляться в вашей
|
||||
системе забытым файлам. Действительно, без файла
|
||||
извлечений <command>cvsup</command> <emphasis>не</emphasis>
|
||||
будет знать, из каких файлов состоит ваш набор (подробности смотрите в
|
||||
справочной системе по &man.cvsup.1; относительно метода откатки); в
|
||||
результате он не может удалить в вашей системе те файлы, которых больше
|
||||
нет в хранилище. Они (удаленные файлы) будут оставаться в системе, и
|
||||
могут вызвать некоторые ошибки при построении или другие проблемы. К
|
||||
примеру, появление этой проблемы весьма вероятно, если вы первый раз
|
||||
обновили ваш набор портов через несколько недель после получения ваших
|
||||
установочных компакт-дисков.</para>
|
||||
|
||||
<para>По этой причине рекомендуется, что вы последуете двухшаговой
|
||||
процедуре, описанной в <application>CVSup</application> FAQ (смотрите Q12, Q13); в
|
||||
последующих разделах вам будут даны конкретные примеры, интересные и
|
||||
поучительные.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="script">
|
||||
<title>Полезный скрипт на языке python: <command>cvsupchk</command></title>
|
||||
|
||||
<para>Как альтернативу для проверки целостности ваших исходных текстов вы
|
||||
можете использовать скрипт <command>cvsupchk</command>, написанный на языке
|
||||
python; этот скрипт в настоящее время находится в
|
||||
<filename>/usr/ports/net/cvsup/work/cvsup-16.1/contrib/cvsupchk</filename>,
|
||||
вместе с хорошим <filename>README</filename>. Предварительные
|
||||
требования:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para><literal>/usr/ports/net/cvsup</literal> &prompt.root;
|
||||
<userinput> make extract</userinput></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>python (также находится в коллекции портов :-))</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Файл извлечений для вашего набора исходных текстов.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Если вы обновляете ваши исходные тексты самый первый раз, конечно же,
|
||||
у вас нет файла извлечений. После установки python и обновления ваших
|
||||
исходных текстов (к примеру, <filename>/usr/ports</filename>), вы можете
|
||||
проверить их так:</para>
|
||||
|
||||
<screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/ports-all/checkouts.cvs:. | more</userinput></screen>
|
||||
|
||||
<para>Если вы хотите проверить ваши исходные тексты RELENG_4:</para>
|
||||
|
||||
<screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/src-all/checkouts.cvs:RELENG_4 | more</userinput></screen>
|
||||
|
||||
<para>В каждом случае <command>cvsupchk</command> будет проверять ваши исходные
|
||||
тексты на целостность, используя информацию, находящуюся в соответствующем файле
|
||||
извлечений. Сообщения о таких аномалиях, как присутствие удаленных
|
||||
файлов (так называемых забытых файлов), отсутствие извлеченных файлов,
|
||||
наличие лишних файлов RCS и мертвых каталогов будут выдаваться на
|
||||
стандартный вывод.</para>
|
||||
|
||||
<para>В следующем разделе мы дадим важные, типовые примеры обновления
|
||||
исходных текстов; эти примеры покажут вам роль файлов извлечений и
|
||||
опасности небрежного управления исходными текстами.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="examples">
|
||||
<title>Примеры более тонкого управления исходными текстами</title>
|
||||
|
||||
<sect2>
|
||||
<title>Как безопасно изменять тэги при обновлении
|
||||
<literal>src-all</literal></title>
|
||||
|
||||
<para>Если в вашем <filename>sup-файле</filename> вы задали, к
|
||||
примеру, <literal>tag=A</literal>, то <command>cvsup</command>
|
||||
создаст файл извлечений с именем <filename>checkouts.cvs:A</filename>:
|
||||
например, если <literal>tag=RELENG_4</literal>, то создаваемый файл
|
||||
извлечений называется <filename>checkouts.cvs:RELENG_4</filename>. Этот файл
|
||||
будет использоваться для получения и/или сохранения информации,
|
||||
идентифицирующей ваши исходные тексты 4-STABLE.</para>
|
||||
|
||||
<para>При отслеживании <literal>src-all</literal>, если вы хотите перейти
|
||||
от <literal>tag=A</literal> к <literal>tag=B</literal> (не имеет
|
||||
значения, больше или меньше A, чем B), и ваш файл извлечений
|
||||
называется <filename>checkouts.cvs:A</filename>, то
|
||||
должны быть выполнены следующие действия:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>&prompt.root; <userinput>mv checkouts.cvs:A
|
||||
checkouts.cvs:B</userinput>
|
||||
(Это даст на последующем шаге корректный файл извлечений)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>создайте <filename>sup-файл</filename>, со строкой наборов, которая содержит:</para>
|
||||
<programlisting>src-all tag=B</programlisting>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>при помощи cvsup выполните обновление ваших исходных текстов
|
||||
с новым <filename>sup-файлом</filename>.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para><command>cvsup</command> будет искать <filename>checkouts.cvs:B</filename> — так
|
||||
как целью является B, то <command>cvsup</command> для корректного управления
|
||||
вашими исходными текстами будет использовать информацию, содержащуюся
|
||||
здесь.</para>
|
||||
|
||||
<para>Выигрыши:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>с исходными текстами работа производится корректно (в
|
||||
частности, не остается забытых файлов)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>на сервер ложится меньшая нагрузка, так как <command>cvsup</command> работает
|
||||
самым эффективным образом.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>К примеру, <literal>A=RELENG_4</literal>, <literal>B=.</literal> Точка
|
||||
в <literal>B=.</literal> означает -CURRENT. Это весьма типичное обновление, от
|
||||
4-STABLE к -CURRENT. Хотя понятно, как
|
||||
<quote>состарить</quote> ваши исходные тексты (к примеру, от -CURRENT к -STABLE),
|
||||
понижение версии системы является совсем другим вопросом. Вам
|
||||
НАСТОЯТЕЛЬНО не рекомендуется выполнять такое действие, если только вы
|
||||
точно не понимаете, что делаете.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Обновление в одной и той же метке с разными датами</title>
|
||||
|
||||
<para>Если вы хотите перейти от <literal>tag=A</literal> к
|
||||
<literal>tag=A</literal> с отличающейся
|
||||
GMT-датой (скажем, <literal>date=D</literal>), то выполняйте следующее:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>напишите <filename>sup-файл</filename> с такой строкой, определяющей набор:</para>
|
||||
<programlisting>src-all tag=A date=D</programlisting>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>обновите ваши исходные тексты с помощью нового <filename>sup-файла</filename></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Не имеет значения, предшествует ли новая дата времени последней
|
||||
операции синхронизации с <literal>tag=A</literal>, или нет. Например, для
|
||||
того, чтобы задать дату <quote>August 27, 2000, 10:00:00 GMT</quote>, вы пишете
|
||||
строку:</para>
|
||||
|
||||
<programlisting>src-all tag=RELENG_4 date=2000.08.27.10.00.00</programlisting>
|
||||
|
||||
<note>
|
||||
<para>Формат даты строг. Вы задаете все компоненты даты: столетие (<quote>20</quote>,
|
||||
то есть 21 век. должен быть указан, когда как <quote>19</quote>,
|
||||
прошлое столетие, может быть опущено), год, месяц, день, час, минуты,
|
||||
секунды — как показано в примере выше. За дополнительной информацией
|
||||
обратитесь к странице справочной системы по &man.cvsup.1;.</para>
|
||||
</note>
|
||||
|
||||
<para>Вне зависимости от того, задана или нет дата, файл извлечений
|
||||
называется <filename>checkouts.cvs:A</filename> (например,
|
||||
<filename>checkouts.cvs:RELENG_4</filename>). В итоге не нужны
|
||||
какие-то действия для возврата к предыдущему состоянию: вы изменяете
|
||||
дату в <filename>sup-файле</filename>, и запускаете
|
||||
<command>cvsup</command> снова.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Обновление вашей коллекции портов самый первый раз</title>
|
||||
|
||||
<para>Если вы хотите <quote>синхронизировать</quote> ваше дерево
|
||||
портов в первый раз, вы должны использовать тэг, совпадающий с
|
||||
вашей установленной версией &os;. Например, если вы установили
|
||||
коллекцию портов во время установки &os; 5.3-RELEASE, то
|
||||
следует использовать следующую строку:
|
||||
<programlisting>ports-all tag=RELEASE_5_3_0</programlisting>
|
||||
<command>cvsup</command> создаст файл извлечений для коллекции
|
||||
портов. Теперь мы можем использовать тэг <quote>.</quote> для
|
||||
последующего обновления дерева портов:
|
||||
<programlisting>ports-all tag=.</programlisting>
|
||||
Все последующие обновления будут обрабатываться гладко.</para>
|
||||
|
||||
<para>Если вы прочли тонкие замечания в этих разделах, то, наверное, вы
|
||||
осознали потенциальные проблемы в процессе обновления исходных
|
||||
текстов. Многие действительно сталкиваются с проблемами. Вас
|
||||
предупредили. :-)</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>
|
Loading…
Reference in a new issue