1 Version control is the most important practical skill we introduce.
2 By the end of 90 minutes, the instructor should be able to get
3 learners to fetch upstream updates, make local edits, and submit their
4 changes upstream and why that's a good way to structure development.
6 Provided there aren't network problems, this entire lesson can be
12 There are many version control tools available, and we have Software
13 Carpentry branches for some of them. Possible choices:
18 * `git://github.com/wking/swc-boot-camps.git version-control-git`
23 * `git://github.com/wking/swc-boot-camps.git version-control-svn`
28 * Make sure the network is working *before* starting this lesson.
30 * Give learners a ten-minute overview of what version control does for
31 them before diving into the watch-and-do practicals. Most of them
32 will have tried to co-author papers by emailing files back and
33 forth, or will have biked into the office only to realize that the
34 USB key with last night's work is still on the kitchen table.
35 Instructors can also make jokes about directories with names like
36 "final version", "final version revised", "final version with
37 reviewer three's corrections", "really final version", and, "come on
38 this really has to be the last version" to motivate version control
39 as a better way to collaborate and as a better way to back work up.
41 * Learners could do most exercises with repositories on their own
42 machines, but it's hard for them to see how version control helps
43 collaboration unless they're sharing a repository with other
44 learners. In particular, showing learners who changed what using
45 `blame` is only compelling if a file has been edited by at least two