SC2012BootcampPlan » History » Version 14
Chris Cannam, 2012-04-24 03:04 PM
1 | 1 | Chris Cannam | h1. Plan for Software Carpentry 2012 Boot Camp on Version Control |
---|---|---|---|
2 | 1 | Chris Cannam | |
3 | 2 | Chris Cannam | h3. Purpose |
4 | 1 | Chris Cannam | |
5 | 2 | Chris Cannam | To explain version control to researchers who have never used it before, or who want to understand it better. |
6 | 2 | Chris Cannam | |
7 | 2 | Chris Cannam | h3. Context |
8 | 2 | Chris Cannam | |
9 | 2 | Chris Cannam | Two hour interactive live workshop, using EasyMercurial and the Mercurial command-line tool. |
10 | 2 | Chris Cannam | |
11 | 2 | Chris Cannam | h2. Outline |
12 | 3 | Chris Cannam | |
13 | 3 | Chris Cannam | The basic plan is: |
14 | 6 | Chris Cannam | |
15 | 3 | Chris Cannam | # presentation introduction to version control in general (using either whiteboard drawings or a PowerPoint presentation) |
16 | 3 | Chris Cannam | # long worked example in which basic topics of version control are worked through using EasyMercurial and then some more advanced topics are returned to using the command-line tool |
17 | 3 | Chris Cannam | # closing remarks talking about other tools, other topics of interest etc |
18 | 3 | Chris Cannam | |
19 | 3 | Chris Cannam | Detailed outline: |
20 | 3 | Chris Cannam | |
21 | 7 | Chris Cannam | * A presentation introduction to the concept of version control. |
22 | 7 | Chris Cannam | ** What is it for and why is it useful? |
23 | 7 | Chris Cannam | ** What can go wrong without it? |
24 | 7 | Chris Cannam | ** How does a version control system work? |
25 | 7 | Chris Cannam | ** *History* + *Collaboration* |
26 | 3 | Chris Cannam | * Check that participants have EasyMercurial installed and working |
27 | 8 | Chris Cannam | * *Worked example, part 1: Working by myself* |
28 | 5 | Chris Cannam | ** *Topics:* Initialising a repository, committing files, reading history, looking at diffs, reverting unwanted changes, going back in time to look at old versions |
29 | 3 | Chris Cannam | ** We will be working on a recipe for fish stew for a future recipe book |
30 | 3 | Chris Cannam | ** Make a new directory, create a text file @fishstew.txt@ in it, start adding an ingredients list, save |
31 | 4 | Chris Cannam | ** Run up EasyMercurial, "Open" that directory, see @fishstew.txt@ in untracked file list, explain this |
32 | 1 | Chris Cannam | ** Add file, commit, supply a message, note that we now have some history |
33 | 9 | Chris Cannam | ** Make a change, note that files are marked as modified, note possible presence of backup file (ending ~ or .bak) from editor -- _we'll come back to that_ |
34 | 13 | Chris Cannam | ** A changeset records the state of all files, not just one file: add another file, @omelette.txt@ and add that |
35 | 8 | Chris Cannam | ** Commit change, review history, look at the diff |
36 | 1 | Chris Cannam | ** _Digression: every action we're taking here corresponds to one command-line command: show hg log, hg diff etc_ |
37 | 10 | Chris Cannam | ** Go back to that backup file in My Work, add it to ignored list, commit |
38 | 13 | Chris Cannam | ** The history is not just for information: we can go back to the previous version by updating to it... |
39 | 12 | Chris Cannam | ** ... and then a normal update gets us back to the latest version again |
40 | 11 | Chris Cannam | ** Now, let's say this is the version we send off to our agent to see whether (s)he can sell it to a publisher. (Or whatever we do these days.) Tag it as v0.1 -- _digression about sensible tag names on whiteboard?_ |
41 | 12 | Chris Cannam | ** Make and commit another change, just to make the history more interesting |
42 | 11 | Chris Cannam | ** What if we make a change and decide we don't want to commit it? Edit something, then hit Revert |
43 | 14 | Chris Cannam | * *Worked example, part 2: Working by myself with backups* |