Git Stuff

Thomas Worthington

Git Stuff

Gitflow

  • Pros    Incremental
    • Well Known
    • Has some tool support
    • Pretty diagram you can stick on your wall
  • Cons    Incremental
    • Assumes single "live" version
      • eg, "only bugfixes" on release branches
    • Strange choice of names
    • Lack of a clear release-candidate system

New System

  • Aims    Incremental
    • Cope with legacy versions
    • "Natural" tagging numbers
    • Distinguish tagged releases from branches
      Only checkout tags

Tree of Life

pix/git1.png

Tree of Life

pix/git2.png
General features

Note: Checkout v1.0 (Perhaps code names for main branches?)

Tree of Life

pix/git3.png
Devs checkout code to work on locally

Tree of Life

pix/git4.png
Incremental check-in of working code

Tree of Life

pix/git5.png
Release candidate code is frozen, tagged, and sent for testing

Tree of Life

pix/git6.png
Tester feeds back results to PM to resource development time/effort

Tree of Life

pix/git7.png
Suddenly a bug is found in a production system! A bug-fix branch is created.

Tree of Life

pix/git8.png
Development progresses in parallel

Tree of Life

pix/git9.png
Bug fix goes for testing; work on feedback from 1.1-rc1 continues

Tree of Life

pix/git10.png
Bug fix passes test, rc becomes release point; rolled out to production

Tree of Life

pix/git11.png
Bug fix becomes part of next mainline release, goes for testing

Tree of Life

pix/git12.png
Release candidate passes tests; rolled out to production…

Tree of Life

pix/git13.png
…and development starts on next release

Tree of Life

pix/git14.png
Start of major re-write

Tree of Life

pix/git15.png
A mature tree

Tree of Life

pix/git16.png
Perhaps some advanced features can't be rolled out everywhere; maintenance of old versions

Tree of Life

pix/git17.png
Worst-case scenario: custom branch for special client needs

Tree of Life

pix/git18.png
Getting rebased as and when possible

Themes    Incremental

  • In theory we have a base design for a theme with rebased branches for each of the clients off that.
  • In reality, I don't know if git is any good for this
  • Ask Mari

Other Bits and Pieces    Incremental

  • GitHub
  • Branches
    • The standard git "master" branch should always be kept up to date (by merging) with the "standard release" so that careless install probably works
    • Perhaps codenames for main branches, eg "kingfisher-v1" to avoid confusion with tag names
  • Bug/feature/story tags
    • Stick to current system for adding meta-markers to checkins, eg: [Fixes #34234] in git comments.

Show's over

Go home