<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Getting The Source Via CVSup</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 8.3.1 Documentation" HREF="index.html"><LINK REL="UP" TITLE="The CVS Repository" HREF="cvs.html"><LINK REL="PREVIOUS" TITLE="Getting The Source Via rsync" HREF="rsync.html"><LINK REL="NEXT" TITLE="Documentation" HREF="docguide.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2008-03-15T03:19:10"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" >PostgreSQL 8.3.1 Documentation</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="rsync.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="cvs.html" >Fast Backward</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Appendix H. The <SPAN CLASS="PRODUCTNAME" >CVS</SPAN > Repository</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A HREF="cvs.html" >Fast Forward</A ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A HREF="docguide.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="CVSUP" >H.4. Getting The Source Via <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN ></A ></H1 ><P > Another alternative to using anonymous CVS for retrieving the <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > source tree is <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN >. <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > was developed by John Polstra (<CODE CLASS="EMAIL" ><<A HREF="mailto:jdp@polstra.com" >jdp@polstra.com</A >></CODE >) to distribute CVS repositories and other file trees for the <A HREF="http://www.freebsd.org" TARGET="_top" >FreeBSD project</A >. </P ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="AEN103468" >H.4.1. Preparing A <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > Client System</A ></H2 ><P > Two directory areas are required for <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > to do its job: a local <SPAN CLASS="PRODUCTNAME" >CVS</SPAN > repository (or simply a directory area if you are fetching a snapshot rather than a repository; see below) and a local <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > bookkeeping area. These can coexist in the same directory tree. </P ><P > Decide where you want to keep your local copy of the <SPAN CLASS="PRODUCTNAME" >CVS</SPAN > repository. On one of our systems we recently set up a repository in <TT CLASS="FILENAME" >/home/cvs/</TT >, but had formerly kept it under a <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > development tree in <TT CLASS="FILENAME" >/opt/postgres/cvs/</TT >. If you intend to keep your repository in <TT CLASS="FILENAME" >/home/cvs/</TT >, then put: </P><PRE CLASS="PROGRAMLISTING" >setenv CVSROOT /home/cvs</PRE ><P> in your <TT CLASS="FILENAME" >.cshrc</TT > file, or a similar line in your <TT CLASS="FILENAME" >.bashrc</TT > or <TT CLASS="FILENAME" >.profile</TT > file, depending on your shell. </P ><P > The <SPAN CLASS="APPLICATION" >cvs</SPAN > repository area must be initialized. Once <TT CLASS="ENVAR" >CVSROOT</TT > is set, then this can be done with a single command: </P><PRE CLASS="PROGRAMLISTING" >cvs init</PRE ><P> after which you should see at least a directory named <TT CLASS="FILENAME" >CVSROOT</TT > when listing the <TT CLASS="ENVAR" >CVSROOT</TT > directory: </P><PRE CLASS="PROGRAMLISTING" >$ ls $CVSROOT CVSROOT/</PRE ><P> </P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="AEN103492" >H.4.2. Running a <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > Client</A ></H2 ><P > Verify that <SPAN CLASS="APPLICATION" >cvsup</SPAN > is in your path; on most systems you can do this by typing: </P><PRE CLASS="PROGRAMLISTING" >which cvsup</PRE ><P> Then, simply run <SPAN CLASS="APPLICATION" >cvsup</SPAN > using: </P><PRE CLASS="PROGRAMLISTING" >cvsup -L 2 <TT CLASS="REPLACEABLE" ><I >postgres.cvsup</I ></TT ></PRE ><P> where <TT CLASS="OPTION" >-L 2</TT > enables some status messages so you can monitor the progress of the update, and <TT CLASS="REPLACEABLE" ><I >postgres.cvsup</I ></TT > is the path and name you have given to your <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > configuration file. </P ><P > Here is a <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > configuration file modified for a specific installation, and which maintains a full local <SPAN CLASS="PRODUCTNAME" >CVS</SPAN > repository: </P><PRE CLASS="PROGRAMLISTING" ># This file represents the standard CVSup distribution file # for the <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > ORDBMS project # Modified by lockhart@fourpalms.org 1997-08-28 # - Point to my local snapshot source tree # - Pull the full CVS repository, not just the latest snapshot # # Defaults that apply to all the collections *default host=cvsup.postgresql.org *default compress *default release=cvs *default delete use-rel-suffix # enable the following line to get the latest snapshot #*default tag=. # enable the following line to get whatever was specified above or by default # at the date specified below #*default date=97.08.29.00.00.00 # base directory where CVSup will store its 'bookmarks' file(s) # will create subdirectory sup/ #*default base=/opt/postgres # /usr/local/pgsql *default base=/home/cvs # prefix directory where CVSup will store the actual distribution(s) *default prefix=/home/cvs # complete distribution, including all below pgsql # individual distributions vs 'the whole thing' # pgsql-doc # pgsql-perl5 # pgsql-src</PRE ><P> </P ><P > If you specify <TT CLASS="OPTION" >repository</TT > instead of <TT CLASS="OPTION" >pgsql</TT > in the above setup, you will get a complete copy of the entire repository at cvsup.postgresql.org, including its <TT CLASS="FILENAME" >CVSROOT</TT > directory. If you do that, you will probably want to exclude those files in that directory that you want to modify locally, using a refuse file. For example, for the above setup you might put this in <TT CLASS="FILENAME" >/home/cvs/sup/repository/refuse</TT >: </P><PRE CLASS="PROGRAMLISTING" >CVSROOT/config* CVSROOT/commitinfo* CVSROOT/loginfo*</PRE ><P> See the <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > manual pages for how to use refuse files. </P ><P > The following is a suggested <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > configuration file from the <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > <A HREF="ftp://ftp.postgresql.org/pub/CVSup/README.cvsup" TARGET="_top" > ftp site</A > which will fetch the current snapshot only: </P><PRE CLASS="PROGRAMLISTING" ># This file represents the standard CVSup distribution file # for the <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > ORDBMS project # # Defaults that apply to all the collections *default host=cvsup.postgresql.org *default compress *default release=cvs *default delete use-rel-suffix *default tag=. # base directory where CVSup will store its 'bookmarks' file(s) *default base=<TT CLASS="REPLACEABLE" ><I >/usr/local/pgsql</I ></TT > # prefix directory where CVSup will store the actual distribution(s) *default prefix=<TT CLASS="REPLACEABLE" ><I >/usr/local/pgsql</I ></TT > # complete distribution, including all below pgsql # individual distributions vs 'the whole thing' # pgsql-doc # pgsql-perl5 # pgsql-src</PRE ><P> </P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="rsync.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="docguide.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Getting The Source Via <SPAN CLASS="PRODUCTNAME" >rsync</SPAN ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="cvs.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Documentation</TD ></TR ></TABLE ></DIV ></BODY ></HTML >