SVN for Computation of Imaging-Based Science
- We will be using SVN as the mechanism for distributing files to and collecting files from students. We will assume that you are using the command-line svn program, as opposed to one of the many svn GUIs. Please read all of the following through once before running any svn commands to create your working copies. Now is a good time to learn the basics of SVN if you haven't already used it.
- THIS PAGE IS STILL BEING WRITTEN; finished version will be announced by end of first week.
- Some basic SVN tutorials are here, and 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 be using Phoenixforge to manage the SVN projects associated with the class. Your authentication on Phoenixforge, and the svn commands that connect to phoenixforge, will by via your University CNetID and its password.
- As a student in CIBS, you will be dealing with two different Phoenixforge "projects":
- The "cibs-2013" project. This will be used to distribute files (such as readings and datasets) to you.
- A per-student sub-project named "CNetID-scivis-2013", where "CNetID" is your CNetID. You should see your per-student sub-project listed at the "cibs-2013" project (that listing of all students is hidden from anyone outside the class). You will hand in files by adding and committing files to this svn project.. We will create sub-directories within this project for each programming exercise.
- The creation of per-student sub-projects within "cibs-2013" is handled by us, based on who is in the class.
- We want to allow code in your per-student "CNetID-cibs-2013" sub-project refer to datasets in the top-level "cibs-2013" project. But we don't want you to copy those datasets into your own project directory (some datasets are large).
- We therefore want the "CNetID-cibs-2013" and "cibs-2013" projects to be checked out alongside each other, as sub-directories of the same parent directory. This way their relative locations will be predictable (for all students), and your the project code can use something like "../../cibs-2013/data" to always refer to the same dataset directory.
- The easiest way to set this up is to create a directory that you'll use for for your CIBS work, such as with:
And thenmkdir cibsOnce you are in cibs or whatever directory you will use to contain your CIBS work, you run the following two svn checkout commands; first:cd cibsand second, after replacing "CNetID" with your CNetID:svn checkout https://phoenixforge.cs.uchicago.edu/svn/cibs-2013/svn checkout https://phoenixforge.cs.uchicago.edu/svn/CNetID-cibs-2013/- 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 the cibs-2013 project, the only command you'll ever need is
svn update- For your CNetID-cibs-2013 project, you'll need:
to see files that we distribute to you (typically stubs or templates for the files you'll have to edit further). You'll hear on the mailing list when you have to do this. To add (hand-in) file X, you'll first need to dosvn updateonce, and then for all subsequent updates to X,svn add XTo see if you have local uncommitted changes, run:svn commit XThis 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- 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 can double check that the files you think you have handed in, have really been handed in. Associated with every per-student subproject is a web-based view of the SVN repository: https://phoenixforge.cs.uchicago.edu/projects/CNetID-cibs-2013/repository, but that URL won't actually work until you replace CNetID with your CNetID. To make this simpler, the directories in your CNetID-cibs-2013 will include a 00-checkme.html file that contains a link to a web page that shows the contents of that directory in the SVN repository. Use this to confirm what the instuctor sees after using svn update to collect your files, and to make sure that you have not submitted an empty ("0 Bytes") file by accident.