+++ /dev/null
-In addition to the generic version control objectives and points.
-
-Basic use
-=========
-
-Learning objectives
--------------------
-
-* Explain why working copies of different projects should not overlap.
-
-Key points
-----------
-
-* The master copy is stored in a repository.
-* Nobody ever edits the master directory: instead, each person edits a
- local working copy.
-* The basic workflow for version control is update-change-commit.
-* `svn add <em>things</em>` tells Subversion to start managing
- particular files or directories.
-* `svn checkout $URL` checks out a working copy of a repository.
-* `svn commit -m "$MESSAGE" $THINGS` sends changes to the repository.
-* `svn diff` compares the current state of a working copy to the state
- after the most recent update.
-* `svn diff -r HEAD` compares the current state of a working copy to
- the state of the master copy.
-* `svn history` shows the history of a working copy.
-* `svn status` shows the status of a working copy.
-* `svn update` updates a working copy from the repository.
-
-Merging conflicts
-=================
-
-Learning objectives
--------------------
-
-* Identify the auxiliary files created when a conflict occurs.
-
-Key points
-----------
-
-* For each conflicted file, Subversion creates auxiliary files
- containing the common parent, the master version, and the local
- version.
-* `svn resolve $FILES` tells Subversion that conflicts have been
- resolved.
-
-Recovering old versions
-=======================
-
-Key points
-----------
-
-* Old versions of files can be recovered by merging their old state
- with their current state.
-* Recovering an old version of a file does not erase the intervening
- changes.
-* `svn revert` undoes local changes to files.
-* `svn merge` merges two revisions of a file.
-
-Setting up a repository
-=======================
-
-Key points
-----------
-
-* `svnadmin create $NAME` creates a new repository.
-
-Provenance
-==========
-
-Key points
-----------
-
-* `$Keyword: …$` in a file can be filled in with a property value each
- time the file is committed.
-* `svn propset svn:keywords $PROPERTY $FILES` tells Subversion to
- start filling in property values.
+++ /dev/null
-In addition to the generic version control notes.
-
-The example at the end showing how to use Subversion keywords to track
-provenance is the "ah ha!" moment for many learners. If time is
-short, skip the material on recovering old versions of files in order
-to get to this section instead. (The fact that provenance is harder
-in Git, both mechanically and conceptually, is one reason to keep
-teaching Subversion.)
-
-Teaching notes
---------------
-
-* Version control is typically taught after the shell, so collect
- learners' names during that session and create a repository for them
- to share with their names as both their IDs and their passwords.
- The easiest way to create the repository is to use a server managed
- by an ISP such as Dreamhost, or on SourceForge, Google Code, or some
- other "forge" site, all of which provide web interfaces for
- repository creation and management. If your learners are advanced
- enough to be using SSH, you can instead create it on any server they
- can access, and connect with the `svn+ssh` protocol instead of
- HTTPS.
-
-* Be very clear what files learners are to edit and what user IDs they
- are to use when giving instructions. It is common for them to edit
- the instructor's biography, or to use the instructor's user ID and
- password when committing. Be equally clear *when* they are to edit
- things: it's also common for someone to edit the file the instructor
- is editing and commit changes while the instructor is explaining
- what's going on, so that a conflict occurs when the instructor comes
- to commit the file.
-
-* If some learners are using Windows, there will inevitably be issues
- merging files with different line endings. `svn diff -x -w` is
- supposed to suppress differences in whitespace, but we have found
- that it doesn't always work as advertised.