branch: condensed my argument to get under 250 words
[workshop-organization.git] / branch
1 Here is an overview of the single repo (side A) option.  There is a
2 central repository for all workshops [1]:
3
4   https://github.com/swcarpentry/workshop
5
6 The “master” branch has the current state-of-the-art content.  If we
7 can't agree on that, there may be a handful of feature branches with
8 alternative content.  A developer preparing for a new workshop should
9 create a per-workshop branch from the master:
10
11   $ git checkout -b 2012-12-my-workshop master
12
13 and optionally merge the feature branches they like:
14
15   $ git merge git-wtk
16
17 They adjust the index page to include only the content subdirectories
18 that they are interested in, and then they build their workshop
19 website and publish it somewhere [2].
20
21 They may, at their discretion, push their branch back into the master
22 repository (to show other instructors what they're up to during
23 development).  After the workshop is over, they should push their
24 branch back into the master, tag the branch tip, and delete their
25 branch.  Instructors can use the past-workshop tags and
26 pending-workshop branches to get a feel for the material that other
27 instructors are teaching [3].
28
29 Workshop-specific changes go into the new per-workshop branch.
30 General changes go into feature branches which should be merged into
31 the master branch (possibly via GitHub pull requests) and into your
32 own per-workshop branch.  If you don't like changing branches, poke a
33 SWC dev to cherry-pick general changes into a feature branch for you.
34
35 [1]: There's a mock-up at https://github.com/wking/swc-workshop
36
37 [2]: The tools used to build the website (and thus the format of the
38      index page) are outside the scope of this proposal.  The example
39      [1] uses Jekyll (the gh-pages default) to build the websites, and
40      publishes the per-workshop sites:
41
42        http://wking.github.com/swc-workshop/
43        http://wking.github.com/swc-workshop/master/Readme.html
44        http://wking.github.com/swc-workshop/2012-10-caltech/
45        http://wking.github.com/swc-workshop/2012-10-lbl/
46        …
47
48      as submodules of the master gh-pages branch:
49
50        https://github.com/wking/swc-workshop/tree/gh-pages
51
52 [3]: I think this paragraph is the only real developer-workflow
53      difference between the single-repo model and the multi-repo
54      model.