This class uses the command-line
svn program
to distribute files to students, and to collect them students.
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. We know that
git has long-since overtaken
svn
in popularity, but the simple and centralized nature of
svn remains
a good match for our class needs.
-
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 DataVis, 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 "datavis21" 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-datavis21", where "CNETID"
is your CNetID. You
should see your per-student sub-project listed at the
"datavis21" project
(that listing of all students is not visible to anyone outside the class).
You hand in work by adding and committing files to the CNETID-datavis21 svn repo (except for HW1, handed in via posting on Piazza).
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-datavis21.
- If you partner with others for one of the projects, a per-group
repository will
be created for you. You will use this for any work that you complete
in that group, which may be used for more than one assignment.
- The creation of per-student sub-projects within "datavis21" 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” category
on Edstem if you are
having problems.
- We want to allow code in your per-student
"CNETID-datavis21" refer to canonical files in
the general "datavis21" for the whole class, rather than having
you copy (and perhaps accidentally modify) those files.
We therefore want you to maintain side-by-side checkouts of
CNETID-datavis21 and datavis21.
On whatever computer where you'll be doing class work, use a terminal window
to get into (by cd) whatever directory you want to use for work in cs239.
And then run these two commands ("svn co" is a synonym for
"svn checkout")
svn co https://phoenixforge.cs.uchicago.edu/svn/datavis21/
svn co https://phoenixforge.cs.uchicago.edu/svn/CNETID-datavis21/
HOWEVER on that last command, you need to replace CNETID with your (all lowercase) CNetID
(or else you'll see "Unable to connect to a repository"
and "Unexpected server error" error messages). The first command should create
a datavis21 subdirectory (which is empty as of April 2nd), and the second creates a CNETID-datavis21
subdirectory containing your new checkouts of those two repositories.
- If you are using your own laptop (rather than a machine you logged
into via your University-supplied CNetID), you will need to identify
yourself to phoenixforge.cs.uchicago.edu via your CNetID. In this case, the two commands
above would be replaced with:
svn co --username=CNETID https://phoenixforge.cs.uchicago.edu/svn/datavis21/
svn co --username=CNETID https://phoenixforge.cs.uchicago.edu/svn/CNETID-datavis21/
where, as before, you need to replace CNETID with your (all lowercase) CNetID.
- 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 datavis21, the only command you'll ever need is
svn update
- For your own CNETID-datavis21, 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-datavis21/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-datavis21
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.