summaryrefslogtreecommitdiff
path: root/wiki/dev/twigs.md
blob: ebc875cf888cf796f4b7d89c19ef33a0b5f3d9dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Branches and Twigs

## Twigs

* Relatively short-lived
* Share the commit policy of their parent branch
* Gain little value from global names
* Examples: most "topic branches" are twigs

## Branches

* Relatively long-lived
* Correspond to differences in commit policy
* Gain lots of value from global names
* Examples: git-flow 'master', 'develop', &c; hg 'stable' vs 'default';
  release branches

## Commit policy

* Decisions like "should every commit pass tests?" and "is rewriting or
  deleting a commit acceptable?" are, collectively, the policy of a branch
* Can be very formal or even tool-enforced, or ad-hoc and fluid
* Shared understanding of commit policy helps get everyone's expectations
  lined up, easing other SCM-mediated conversations