P545 Homework Procedures

This class uses Subversion (SVN), a version-control system for multi-person projects. We do not require all of SVN's functionality in this course; it just serves as a homework depository. To turn an assignment in, you will post ("up-load") a local copy of your work SVN.

You will need to conform to a standard file organization for the homework, but you may also create additional directories for maintaining other activities relating to the course, such as presentations.

Homework Organization

The SVN repository contains a directory called class/fall10 For each participant, there is a password-protected subdirectory class/fall10/logid/, where logid is your IU network ID (for instance, mine would be sjohnson). class/logid/ is initialized with subdirectories lab/1/ through lab/5/ for laboratory assignments, share/ for files you wish to share with the rest of the class, and project/ for your final project. You are free to add other directories and subdirectories.

Note: Lab assignment number n must be deposited in sub-directory class/fall10/logid/lab/n

For a typical P545 assignment, you should post

  1. Your source code and lab report
  2. You can do your work in your working copy (see below) of the repository. Alternatively, you can do the work elsewhere and transfer it to your working copy.
  3. Important: For each file or directory you transfer into your working copy, you must inform SVN that it should be added to the repository by invoking svn add file, or svn add directory, respectively.
  4. Important: For each file or directory you wish to remove from your working copy, you must inform SVN that it should be deleted from the repository by invoking svn delete file, or svn delete directory, respectively.
  5. No changes, additions, or deletions "take effect" until you invoke the commit ("check in") command svn ci -m "your message here" file


There are on-line SVN user manuals on the web [HTM]. Chapter 2 (Basic Usage) covers the commands we need. In fact, the example that follows is adequate for posting homework.

  • The link https://www.cs.indiana.edu/svn/bhimebau/embedded_systems opens a directory browser. This is the way to navigate the repository and verify what you have posted. It is mandatory to use https. You will be prompted for your password, which is initially p545user

  • First, participant astudent "checks out" (makes a local copy) of their SVN subdirectory using the command svn co url dir. Argument dir is the name of astudent's local directory.
    svn co https://www.cs.indiana.edu/svn/bhimebau/embedded_systems/class/fall10/astudent/ my-svn-working-copy
    A    p545/lab
    A    p545/public
    Checked out revision 999.

  • Astudent looks at the content of the local copy to see that it is initialized with subdirectories for the lab assignments.
    cd my-svn-working-copy
    lab/ public/
    cd lab
    0  1  2  3  4  5 

  • Very Important: Astudent must tell SVN about new files that they have created and would like to be added to the repository. This is accomplished using the svn add command.
    cp somewhere/newcomponent.py  1/component.py
    svn add 1/component.py
    A         1/component.py

  • Changes to the local copy do not take effect in the repository until the owner invokes svn ci -m "message" file. The -m message option deposits a message with the update.
    svn commit -m "Homework 1 Complete" 1/
    Adding         lab/1/component.py
    Transmitting file data ..
    Committed revision 1000.
  • SVN reports everything that has been changed in the repository. You can also verify the content of your sub-directory, class/fall10/loginID/* through your browser.

Changing Your Password

  1. Access the ERTS TRAC at https://cgi.cs.indiana.edu/~bhimebau/trac/trac.cgi/. ERTS TRAC is and informational site.
  2. Follow the Preferences in the upper-right corner of the home page.
  3. Open the Account tab.
  4. Enter and confirm your new password
  5. Click the "Save changes" button