F.3. Obtenir les sources via CVSup
Une alternative au CVS anonyme pour obtenir l'arbre source de
PostgreSQL™ est CVSup™. CVSup™ a été développé par John Polstra
(<jdp@polstra.com>) pour
distribuer des arbres de référence CVS et d'autres arborescences de
fichiers pour le
projet
FreeBSD
.
Un des avantages majeurs de CVSup™ est la réplication fiable de la
totalité
du référentiel CVS
sur le système local. Cela permet un accès rapide aux opérations
cvs
telles que
log ou diff. L'autre
avantage est la synchronisation efficace avec le serveur PostgreSQL™ grâce à un protocole de flux
de transfert qui ne transmet que les différences depuis la dernière
mise à jour.
F.3.1. Préparer un système client CVSup
Deux groupes de répertoires sont nécessaires à CVSup™ : un entrepôt contenant le
référentiel CVS™ local (ou
simplement un groupe de répertoires si seul un extrait est récupéré
et non le référentiel complet ; voir plus loin) et une zone de
stockage propre à CVSup™.
Ces deux groupes de répertoires peuvent coexister dans la même
arborescence.
Il faut alors décider de l'emplacement de la copie locale du
référentiel CVS™. Sur un de
ses systèmes, l'auteur a récemment créé un référentiel dans
/home/cvs/, mais utilisait jusque-là
/opt/postgres/cvs/ comme arbre de
développement pour PostgreSQL™. Pour placer le référentiel
dans /home/cvs/, ajouter
setenv CVSROOT /home/cvs
dans le fichier .cshrc, .bashrc ou dans .profile,
en fonction de l'interpréteur de commandes (shell).
La zone de référentiel de cvs doit
être initialisée. Une fois CVSROOT
initialisée, il suffit de faire :
cvs init
après quoi devrait au moins exister un répertoire CVSROOT :
$ ls $CVSROOT
CVSROOT/
F.3.2. Utiliser un client CVSup
Vérifier que cvsup est dans le
chemin (
path
). Sur la plupart des systèmes,
cela se fait en tapant
which cvsup
Lancer alors cvsup :
cvsup -L 2 postgres.cvsup
où -L 2 active certains messages de statut
pour suivre la progression de la mise à jour et
postgres.cvsup
représente la chemin et
le nom donnés au fichier de configuration CVSup™.
Un fichier de configuration CVSup™ modifié pour une installation
spécifique, qui maintient un référentiel CVS™ local complet est présenté
ci-après.
# Ce fichier représente le fichier de distribution CVSup standard
# pour le projet de SGBDRO PostgreSQL™
# Modifié par lockart@fourpalms.org 1997-08-28
# - Pointe vers mon arborescence de référence locale
# - Extrait le référentiel CVS complet, pas seulement la
# dernière version
#
#Valeurs par défaut qui s'appliquent à toutes les collections
*default host=cvsup.postgresql.org
*default compress
*default release=cvs
*default delete use-rel-suffix
# Activer la ligne suivante pour récupérer la dernière version
#*default tag=.
# Activer la ligne suivante pour récupérer ce qui est précisé au dessus ou
# par défaut à la date précisée en dessous
#*default date=97.08.29.00.00.00
# répertoire de base où CVSup stocke ses fichiers 'marque page'
# créera un sous répertoire sup/
#*default base=/opt/postgres # /usr/local/pgsql
*default base=/home/cvs
# répertoire préfixe où CVSup stocke les distributions
*default prefix=/home/cvs
# Distribution complète, avec tout ce qui est en dessous
pgsql
# distributions partielles
# pgsql-doc
# pgsql-perl5
# pgsql-src
Si repository est indiqué à la place de
pgsql dans la configuration précédente, une
copie complète du dépôt cvsup.postgresql.org est récupérée. Ce qui
inclut le répertoire CVSROOT. Il faudra
alors probablement exclure du répertoire les fichiers qui seront
modifiés localement. Pour cela, utiliser un fichier de refus. Par
exemple, pour la configuration précédente, on peut avoir dans le
fichier /home/cvs/sup/repository/refuse :
CVSROOT/config*
CVSROOT/commitinfo*
CVSROOT/loginfo*
Voir les pages man de CVSup™
pour savoir comment utiliser les fichiers de refus.
Ce qui suit est une suggestion de fichier de configuration
CVSup™ issue du
site
FTP
de PostgreSQL™,
qui ne récupère que la version courante :
# Ce fichier représente la distribution CVSup standard pour le
# projet de SGBDRO PostgreSQL™.
#
# Valeurs par défaut qui s'appliquent à toutes les collections.
*default host=cvsup.postgresql.org
*default compress
*default release=cvs
*default delete use-rel-suffix
*default tag=.
# répertoire de base où CVSup stocke ses fichiers 'marque page'
*default base=/usr/local/pgsql
# répertoire préfixe où CVSup stocke les distributions
*default prefix=/usr/local/pgsql
# Distribution complète, avec tout ce qui est en dessous
pgsql
# distributions partielles
# pgsql-doc
# pgsql-perl5
# pgsql-src