45a0b0b6178ffce8b89bf7e88e3d7451b0ba3a18
[swc-version-control-svn.git] / version-control / svn / instructor.md
1 In addition to the generic version control notes.
2
3 The example at the end showing how to use Subversion keywords to track
4 provenance is the "ah ha!" moment for many learners.  If time is
5 short, skip the material on recovering old versions of files in order
6 to get to this section instead.  (The fact that provenance is harder
7 in Git, both mechanically and conceptually, is one reason to keep
8 teaching Subversion.)
9
10 Teaching notes
11 --------------
12
13 * Version control is typically taught after the shell, so collect
14   learners' names during that session and create a repository for them
15   to share with their names as both their IDs and their passwords.
16   The easiest way to create the repository is to use a server managed
17   by an ISP such as Dreamhost, or on SourceForge, Google Code, or some
18   other "forge" site, all of which provide web interfaces for
19   repository creation and management.  If your learners are advanced
20   enough to be using SSH, you can instead create it on any server they
21   can access, and connect with the `svn+ssh` protocol instead of
22   HTTPS.
23
24 * Be very clear what files learners are to edit and what user IDs they
25   are to use when giving instructions.  It is common for them to edit
26   the instructor's biography, or to use the instructor's user ID and
27   password when committing.  Be equally clear *when* they are to edit
28   things: it's also common for someone to edit the file the instructor
29   is editing and commit changes while the instructor is explaining
30   what's going on, so that a conflict occurs when the instructor comes
31   to commit the file.
32
33 * If some learners are using Windows, there will inevitably be issues
34   merging files with different line endings.  `svn diff -x -w` is
35   supposed to suppress differences in whitespace, but we have found
36   that it doesn't always work as advertised.