In order to accelerate dissemination, to provide a development environment that is as open as possible and to facilitate mirroring, the PPL Git and the old CVS repositories, as well as various other PPL-related data are also available through anonymous rsync access.

rsync is a file transfer program for Unix systems. rsync uses the rsync algorithm that provides a very fast method for bringing remote files into sync, that is, to make the remote and local versions identical. The algorithm does this by sending just the differences in the files across the link, without requiring that both sets of files are present at one of the ends of the link beforehand.

Using rsync

Here is how you get a copy of the Git repository: first, you must select a directory that will hold your copy of the repository. Assume that your choice is


Please note: whatever is in the directory /path/to/your/copy/ will be silently replaced by a verbatim copy of our repository. In other words, if /path/to/your/copy/My_PhD_Thesis is an existing file or directory in your system then you must think twice before proceeding. Still in other words, /path/to/your/copy/ must either be empty or contain an old copy of the PPL repository that you would like to update.

Now you can issue the command

rsync --archive --delete --checksum --compress \\
  rsync:// /path/to/your/copy/
(The trailing `\' above simply means that the command continues on the following line.)
It is usually wise to write a small script containing the rsync command so as to save typing and to reduce the chances of (costly) mistakes.

The same command can be run periodically to synchronize your copy of the repository. Subsequent synchronisations will be much faster thanks to the rsync algorithm. You may use the --stats option of rsync to get an idea of how effective this is. Use --progress if you want visual feedback on what is happening.

See the Git instructions on how to use your local copy of the repository.

The whole FTP area of the Parma Polyhedra Library is also available with rsync. Just replace ppl-git (an rsync target) with ppl-ftp in the command above. To get a list of available rsync targets, issue the command

rsync rsync://

As usual, we encourage you to try

rsync --help
or, if you really are in a state of grace,
man rsync


If you are in a part of the world that seems poorly served by our site, we encourage you to set up local mirrors of the Git repository and FTP site for you and others in your part of the world to use. Mirroring is also useful for backup purposes and rsync is the ideal tool for the job.

If you decide to run a PPL mirror, let us know: we will list it on our mirrors page so that others may find it. Updating/checking your mirror twice a week should suffice. We also recommend that you run your mirroring script between 11 a.m. and 4 p.m. UTC/GMT, when network traffic in our country is at its lowest.