Skip to Content
DownloadCVS Access

Access the Parma Polyhedra Library Using CVS

The Parma Polyhedra Library is currently being maintained on a publicly readable CVS server.

CVS is a powerful tool that allows many developers to work on the same source code. This is possible because each developer checks out a copy of the current version of the source code. Developers then work independently on their personal copy. When they have made changes, they commit them back to the CVS repository. The CVS server takes care of things like trying to merge the changes coming from different developers. When this is not possible, developers are notified so that they can proceed to a manual merge of the conflicts.

Full read-write access to this repository is of course restricted to recognized developers. Write to us if you want to be involved in the development effort.

We also provide read-only anonymous access to the repository. This allows anyone to easily synchronize their own copy with the development sources.

CVS is a powerful and complex system: see below for some CVS tips and pointers to further reading. []{#read-only-access}

Read-Only Anonymous CVS Access

For this to work you need CVS version 1.9 or later.

Set the CVSROOT environment variable to

:pserver:anoncvs@cvs.cs.unipr.it:/cvs/ppl

Alternately, you can add

-d :pserver:anoncvs@cvs.cs.unipr.it:/cvs/ppl

to the CVS commands below (place it immediately after cvs, i.e., before any other argument of the cvs command).

To checkout the PPL distribution, issue the command

cvs -z 9 checkout -P ppl

to check out the PPL sources, or

cvs -z 9 checkout -P w3ppl

to check out our web pages.

After the initial checkout, you can change into one of the project’s directories and execute CVS commands without the -d :pserver... option or the CVSROOT environment variable. For example, whenever you want to merge with the latest code changes, cd into your ppl directory and issue

cvs -z 9 update -d -P

[]{#read-write-access}

Read-Write CVS Access

Full access to the repository requires authenticated access via the SSH protocol. For this to work, an SSH client must be available on your local machine and you must have an account on cvs.cs.unipr.it. To see if these are the cases, use SSH to enter your myusername account on cvs.cs.unipr.it: issue the command

ssh cvs.cs.unipr.it -l myusername

If this does not work there is no point in reading further: solve this problem first.

The environment variable CVS_RSH must be set to a working path for the ssh. If you use bash, this can be done issuing the command

export CVS_RSH=ssh

or adding it to the appropriate startup file (and then logout and login again).

Set the CVSROOT environment variable to

myusername@cvs.cs.unipr.it:/cvs/ppl

Alternately, you can add

-d myusername@cvs.cs.unipr.it:/cvs/ppl

to the CVS commands below (place it immediately after cvs, i.e., before any other argument of the cvs command).

To checkout the PPL distribution, issue the command

cvs -z 9 checkout -P ppl

to check out the PPL sources, or

cvs -z 9 checkout -P w3ppl

to check out our web pages. If you get permission denied errors with no prompt for a password, you do not have the CVS_RSH environment variable set properly or SSH is not available to your system. Fix this before suspecting a password problem.

After the initial checkout, you can change into one of the project’s directories and execute CVS commands without the -d myusername... option or the CVSROOT environment variable. For example, whenever you want to merge with the latest code changes, cd into your ppl directory and issue

cvs -z 9 update -d -P

To avoid messages about (lack of) X11 forwarding, put in your $HOME/.ssh/config an entry like:

Host cvs.cs.unipr.it ForwardX11 no

Web Pages

Note that when you commit changes to the web pages, these will automatically be checked out into the web server’s data area at http://www.cs.unipr.it/ppl/.

Write Access and Responsibility

Always remember the commandments of team membership:

  1. Thou shalt not break the build. Cause not the build team to call down demons upon your workstation.
  2. Thou shalt not wander through thy brother’s code changing his parts without first obtaining thy brother’s permission. A plague upon those that sow random and wanton destruction through others code.
  3. Thou wilt respond to build and/or bringup problems with haste and thoroughness. Be humble, and serve.
  4. Thou shalt coordinate interface changes and submissions with thy brother developers. Woe be to thee who causes thy brother’s code to break.
  5. Thou shalt not unnecessarily change common headers. Woe be the developer who heedeth this not, he shall cause a rebuilding of the world and incur 40 days and 40 nights of compiles.
  6. Thou shalt not covet the false temptress code change past code-freeze. Resist the evil temptation of just one more fix. Thy brother developers and release managers will curse thy name long into the darkness.

[]{#using-cvs}

Using CVS

Documentation

Tips

Use a .cvsrc File

You can save some keystrokes by putting a file called .cvsrc into your home directory. This file should contain default options for some CVS commands. Here is a set of good defaults you can take for inspiration: put them into $HOME/.cvsrc and see if you like them.

cvs -z 9 diff -u -d -N update -d -P checkout -P

CVS Ultra-Quick Reference

For the lazy, here are some CVS commands that may be of use:


get/checkout downloads a local copy of the requested module update bring your working directory up to date with the repository add adds a new file to the repository, requires write access commit apply local changes to the repository, requires write access diff shows differences between local files and repository history shows reports on commands against the CVS repository log shows CVS log information rdiff used to prepare a diff file between releases status shows current status if files in repository and local copies tag applies a tag to the repository, requires write access


You can also try giving to your shell the command

cvs --help-commands

or, if you really feel adventurous,

man cvs

Last updated on