CSE 566 Reconfigurable System On Chip Design
John W. Lockwood
Fall 2004

Machine Problem 0:

Version Control for Large-Scale
SoC Project Designs

Due: Tuesday, September 28, 2004, 2:30pm

10 Points

Instructions

Throughout this course, we will use a tool called the Concurrent Versions System (CVS). The following material provides you with a very brief introduction to using CVS with your projects. CVS has many more features than those that we will be using in this class. Our examples do not, for example, specify how to revert to past versions of your files. A full manual on CVS is available on-line at: The CVS Manual and is recommended reading.

To complete the following exercises, you will need to use a Cygwin shell from a Windows machines in the Urbauer 116 lab. As a student in CSE566, you have been assigned a username that you will need to access your files.

We will be accessing the files and simulating the design two ways: locally and remotely.

Part 1: Local Access

  1. Open the Cygwin Bash Shell, and run the following command:
    export CVS_RSH=/bin/ssh && export CVSROOT=username@soc.arl.wustl.edu:/usr/local/cvsroot
    • You will be using the account provided to you for CSE566 at the start of the semester.

  2. Make a directory called projects (or choose a different directory name of your choice) with the command:
    mkdir projects
    Assuming that you use the directory called projects, use the following command to change to it:
    cd projects

  3. Run the following:
    cvs checkout -P username/MP1
    to check out Machine Problem 1. Substitute your username for username. This will create a directory with your username, and underneath that a directory called MP1. The P flag is to prune empty directories. By default there is no way to delete directories from a CVS repository, so the P option will cause these folders to not be copied when you check out the project.

Part 2: Remote Access

  1. Open the Cygwin Bash Shell, and run the following command:
    export DISPLAY=localhost:0.0
    This sets up your X environment. Next run the following command:
    startx &
    This will start the X server (Cygwin-XFree86). It may take a little to come up.

  2. Using one of the terminals (either in the X window or the regular Cygwin Bash Shell), run the following command:
    ssh -X username@soc.arl.wustl.edu
    where username is the username you were given. You will be asked for your password, and then you will log in. Note that when you are logged into SOC, your CVS environment is already set up.

  3. Make a directory called projects (or choose a different directory name of your choice) with the command:
    mkdir projects
    Assuming that you use the directory called projects, use the following command to change to it:
    cd projects

  4. Run the following:
    cvs checkout -P username/MP1
    to check out Machine Problem 1. Substitute your username for username. As previously, this will create a directory with your username, and underneath that a directory called MP1 containing another copy of your source code on the remote machine SOC.

Part 3: Using CVS

You'll now get an introduction to most of the main functionality of CVS. Below are some general instructions for renaming, adding and removing files, and committing changes. Follow the instructions below to change the name of the What_To_Do file to What_To_Do.txt Do all of this while SSHed into SOC, immediately following Part 2.

Renaming files

Adding new files to your project

Removing files from your project

Changes to existing files (not adding, deleting, or renaming files)

Committing changes

Updating the local copy

Now, go back to your local copy (using Cygwin, not but not SSHed into SOC), change to the MP1 directory, and run the following:
cvs update -P
Look at the files in the directory. Note how What_To_Do is now gone, and What_To_Do.txt now appears in the directory.