The following steps must be performed once in the beginning of the semester to setup your environment.
First, you must go through the Git tutorial that I sent. It is critical that you understand everything in that tutorial.
Make sure you have configured your git environment by issuing the following commands while logged into CLAC:
git config --global user.name "Your Full Name"
git config --global user.email your_uni@columbia.edu
Verify your configuration by typing:
git config -l
~/cs4995
directoryCreate a cs4995
directory under your home directory and set the permission to
700:
mkdir ~/cs4995
chmod 700 ~/cs4995
All your labs will be done inside this directory, and chmod 700
ensures that
other people cannot see what’s in the directory.
Execute the following command:
cp /home/jae/cs4995-pub/conf/.muttrc ~/
This will copy over a configuration file for Mutt, a command line email program that the lab submission script will invoke to email your submission back to you.
You start labN
(substitute the current lab number for N) by git-cloning the
skeleton code for the lab.
Go into the cs4995
directory and git-clone labN from /home/jae/cs4995-pub
:
cd cs4995
git clone /home/jae/cs4995-pub/labN labN
Your job is to modify existing files (rename or remove them if necessary) and add new files to complete the lab.
IMPORTANT: Note that you do NOT git init
to start your lab assignment.
You won’t be able to submit your lab later if you start by running git init
.
As you work on your lab, you should git-commit frequently. You are required to git-commit at least 5 times before submission.
First of all, please practice lab submission well before the deadline. In fact, I recommend that you try submission even before you start working on your code. Make some trivial changes to the skeleton code, git commit, and follow the rest of this section to submit your change. Make sure everything works and you are comfortable with the submission process. You can submit as many times as you want. Only the last submission counts.
Before you submit your finished work, make sure:
You have tested your code.
You have committed all your changes. Run the following commands in each part’s directory:
make clean
git status
Make sure that there is no source file that is untracked or uncommitted. Make sure that nothing other than source files and documentation are tracked. Do NOT track binary files such as executables, object files, and library files.
Submit your work by running the submit-lab script:
submit-lab labN
The submit script will perform 4 steps to submit your lab:
It creates a patch file named YOUR_UNI-labN.mbox
.
It makes a new clone of the skeleton code into labN-CURRENT_TIME
directory, and applies your patch into that directory to recreate all your
work.
It then copies your patch file into the class submission directory.
Lastly, it emails the patch file to the class Gmail account.
If all goes well, you will see it printing “SUCCESS!”
At this point, please go into the labN-CURRENT_TIME
directory that it just
created, and build and test your code. This is what the graders will grade.
I cannot stress enough how important this last build & testing step is. There have been a number of instances where a student makes a last minute change in his/her code or Makefile, submits it, but forgot to test it afterwards. Unfortunately, the student made a typo while making the last minute change, which made the build fail. Everyone received ZERO in those cases, absolutely no exception.
A few more notes:
Do not commit the patch file or your timestamp directories.
Check your late days by running check-late-days
. You won’t be able to
submit late if you don’t have any late days left.