cTI

Home

Download

Access the cTI System Sources Using CVS

The cTI system 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 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 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/cTI

Alternately, you can add

-d :pserver:anoncvs@cvs.cs.unipr.it:/cvs/cTI
to the CVS commands below (place it immediately after cvs, i.e., before any other argument of the cvs command).

Issue the command:

cvs login
Enter the password string which is simply anoncvs.

To checkout the cTI distribution, issue the command

cvs -z 9 checkout -P cTI
to check out the cTI sources, or
cvs -z 9 checkout -P w3cTI
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 cTI directory and issue

cvs -z 9 update -d -P

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/cTI

Alternately, you can add

-d myusername@cvs.cs.unipr.it:/cvs/cTI
to the CVS commands below (place it immediately after cvs, i.e., before any other argument of the cvs command).

To checkout the cTI distribution, issue the command

cvs -z 9 checkout -P cTI
to check out the cTI sources, or
cvs -z 9 checkout -P w3cTI
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 cTI directory and issue

cvs -z 9 update -d -P

To avoid messages about (lack of) X11 forwarding, put in your $HOME/.ssh/config and 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/cTI/.

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.
  7. 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 -c -d -N
    update -d -P
    checkout -P
    

    CVS Quick Reference

    For the lazy, here are some CVS commands that may be of use:
    login login to the CVS server
    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

    [Page last updated on January 16, 2013, 21:43:28.]

© Fred Mesnard

Home | Download