Structure of git.gitEdit

The structure of the main Git repository for Git itself is explained here:

Branches not related to the source tree of Git

todo

  • A TODO list, "not as often updated as it could/should be"
  • Helper scripts used to maintain Git

html

man

  • Autogenerated documentation from the tip of the "master" branch

Branches that track the Git source tree

master

  • "Reasonably tested and ready to be used in a production setting"
  • Occasional "feature releases" (eg. 1.5.0) cut from tip of this branch
  • Trival, safe enhancements committed here
  • Never rewound, "so you should be able to safely track"

maint

  • Forked off from master when a feature release is made
  • "Obvious, safe and urgent fixes" applied to this branch
  • Maintenance releases cut from this branch (eg. 1.5.0.1)
  • Merged into "master" to propagate the fixes forward
  • Never rewound, "so you should be able to safely track"

next

  • New features developed in topic branches forked off master and then merged here when "more or less done and can now be tested by wider audience"
  • "might not be quite production ready, but are expected to work more or less without major breakage"
  • "where new and exciting things take place"
  • reset to the tip of the "master" branch after each major feature release (formely was: Never rewound, "so you should be able to safely track"; "topics that have been merged into 'next' are not rebased")
  • Topics here expected to be "tweaked and fixed to perfection" before being merged into master

pu

  • "Proposed updates" branch
  • For all other topic branches
  • Subject to rebasing in general
  • When topics in pu reach "testable shape" they graduate to next
  • Topics that turn out not to be promising may be dropped from pu