- 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 "datavis19" 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-datavis19", where "CNETID" is your CNetID. You should see your per-student sub-project listed at the "datavis19" 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-datavis19 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-datavis19.
- 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 for both projects.
- The creation of per-student sub-projects within "datavis19" 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-datavis19" refer to canonical files in
the general "datavis19" 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-datavis19 and datavis19.
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")
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 datavis19 subdirectory (which is empty as of April 2nd), and the second creates a CNETID-datavis19 subdirectory containing your new checkouts of those two repositories.svn co https://phoenixforge.cs.uchicago.edu/svn/datavis19/ svn co https://phoenixforge.cs.uchicago.edu/svn/CNETID-datavis19/
NOTE: If you are doing class work on a CSIL Mac, a new home directory is created for you each time you log in, so you will need to re-run the svn co commands each time you start work. You must svn add and svn commit new files you create, or svn commit any files you modify, or else your work can be lost.
- 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:
where, as before, you need to replace CNETID with your (all lowercase) CNetID.svn co --username=CNETID https://phoenixforge.cs.uchicago.edu/svn/datavis19/ svn co --username=CNETID https://phoenixforge.cs.uchicago.edu/svn/CNETID-datavis19/
- 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 datavis19, the only command you'll ever need is
svn update
- For your own CNETID-datavis19, you use
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 firstsvn update
once, and then for all subsequent updates to X,svn add X
To see if you have local uncommitted changes, run:svn commit -m "descriptive message here" X
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.svn status
- For datavis19, the only command you'll ever need is
- 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-datavis19/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-datavis19 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.