This class uses
SVN to distribute files to
and collect files from students. We use the command-line
svn program, rather than a
GUI.
Please read the following through once before running any
svn commands.
You are responsible for learning the basics of SVN if you haven't
already used it.
-
Some SVN tutorials are
here,
here, and
here.
-
You can search for
svn tutorial and
svn introduction to find others.
-
The canonical reference is the SVN book here, which includes
HTML and
PDF versions;
you might want to start with Chapter 1.
- We will use
Phoenixforge
to manage the SVN repositories in the class. Authentication
on Phoenixforge, and with the svn commands that connect to it,
is with your University CNetID
and its password.
- As a student in SciVis, you will be dealing with at least two different projects:
(“project” is Phoenixforge terminology for an organizational layer on top
of an SVN repository, or "repo").
- The "scivis-2018" project.
This will be used to distribute canonical files to you,
such as libraries and datasets. You won't be able to modify these files
(or more precisely, you won't be able to commit any local changes you
make to these files).
- A per-student sub-project named "CNETID-scivis-2018", where "CNETID"
is your CNetID. You
should see your per-student sub-project listed at the
"scivis-2018" project
(that listing of all students is not visible to anyone outside the class).
You hand in work by adding and committing files to this svn repo.
For each homework and project, we will create sub-directories within this project for you.
You should not create new per-assignment directories inside CNETID-scivis-2018.
- If you partner with someone for one of the projects, a per-pair
"CNETID1-CNETID2-scivis-2018" repository will
be created for you. You will use this for any work that you complete
as that pair, which may be multiple projects.
- The creation of per-student sub-projects within "scivis-2018" is
done automatically and periodically, based on the electronically accessible
course registration information at that time. Therefore, it may take a day or so
for you to show up here, if you have added the
class recently. Post a question in the “svn” folder
on Piazza if you are
having problems.
- We want to allow code in your per-student
"CNETID-scivis-2018" repo (as well as in any per-pair repos) to refer to canonical files in
the general "scivis-2018" class repo, rather than having
you needlessly copy or hand-in those files, which complicates grading.
We therefore use an environment variable $SCIVIS
to identify where your scivis-2018 checkout is.
Set $SCIVIS to the full path of your scivis-2018,
ending with "scivis-2018".
- The easiest way to set this up is to create a directory that you'll use for for SciVis coding, such as with:
mkdir scivis-work
And then
cd scivis-work
Once you are in scivis-work or whatever directory you will use to contain your SciVis coding, you
run the following two svn checkout commands; first:
svn checkout https://phoenixforge.cs.uchicago.edu/svn/scivis-2018/
pushd .
cd scivis-2018
export SCIVIS=`pwd`
cd teem-install/bin
export PATH=`pwd`:${PATH}
popd
and second, after replacing "CNETID" with your CNetID:
svn checkout https://phoenixforge.cs.uchicago.edu/svn/CNETID-scivis-2018/
Note that when using the CSIL Macs, a new home directory is created
for you each time you log in, so you will need to re-run these
commands each time you start work on a CSIL Mac. You must
svn add and svn commit files you create here,
or else your work can be lost. For the homework assignments
that do not require any programming work, you will be handing in a PDF
files, so it doesn't matter where you're running the svn commands;
feel free to keep an addition checkout of CNETID-scivis-2018
anywhere there is more persistence to your files.
- The above commands have been collected into a script:
scivis-setup.sh. After you log into a CSIL Mac,
you can download and run this with:
curl -O http://people.cs.uchicago.edu/~glk/class/scivis/svn/scivis-setup.sh
source scivis-setup.sh
By using "source scivis-setup.sh" instead of "./scivis-setup.sh",
the changes made by the script to your
SCIVIS and PATH environment
variables will usefully persist in your current shell.
- From then on you really only need to know three or four svn commands. You
execute these commands from within the directories created by the svn co
commands above.
- For scivis-2018, the only command you'll ever need is
svn update
- For your own CNETID-scivis-2018, you use
svn update
to get the per-assignment directories we create for you, and other per-assignment files we distribute
(typically stubs or templates for the files you'll have to edit further).
To hand-in file X, if an initial version was not already distributed to you, you need to first
svn add X
once, and then for all subsequent updates to X,
svn commit -m "descriptive message here" X
To see if you have local uncommitted changes, run:
svn status
This lists files that have uncommitted changes (marked with an "M"), and
files that have not been added or committed (marked with a "?"), called
"untracked" files in SVN.
- Because svn commit is how you are handing in your work, be
careful with it. Its proper use is your responsibility. In particular:
- If you haven't done an svn add and svn commit, it hasn't been handed in.
Use svn status to see uncommitted changes and untracked files.
Make sure that you have done an svn add on all the files you want to hand in.
- You should double check that the files you think you have handed in, have really been handed in.
Associated with every per-student project is a web-based view of the SVN repo:
https://phoenixforge.cs.uchicago.edu/projects/CNETID-scivis-2018/repository,
but that URL won't actually work until you replace
CNETID with your CNetID.
- To make this simpler, the directories in your individual CNETID-scivis-2018
will include a 00-checkme.html file that contains a link to a Phoenixforge web page showing the actual
contents of that directory, on the SVN server.
Use this link to confirm what we will get we collect your work for grading,
and to ensure that you have not submitted an empty ("0 Bytes") file by accident.
- svn and the repos involved know nothing about deadlines: you can
modify and commit files both before and after the deadline. For grading,
we will collect files as they were committed by the deadline.