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 autres arborescences de fichiers pour le projet FreeBSD.
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 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).
Le dépôt cvs doit être initialisé. 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/
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 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é ci-dessus ou
# par défaut à la date précisée ci-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 faut alors probablement exclure du répertoire les fichiers qui seront modifiés localement. Pour cela, on utilise 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